2010-05-17 27 views
0

我想将Apache服务器安装到像windows下的c:\ anything \思怞怟\ anything2 \这样的文件夹中。 当我尝试启动最高审计机关的服务:Apache安装在名称为中文的文件夹中

httpd: Syntax error on line xx of C:/anything/\xe6\x80\x98\xe6\x80\x99\e6\80\9a/anything2/apache/conf/httpd.conf: ServerRoot must be a valid directory

有没有人有办法解决吗?

回答

1

有没有人有解决方案?

不要那样做? :-)

Windows上的Unicode文件名是软件通过基于字节的接口(如MS CRT公开的C标准库(stdio)函数)与操作系统交谈的一个大问题。

虽然其他平台大部分标准化为UTF-8作为文件名编码,但Windows使用特定于语言环境的系统默认代码页(误导性地称为“ANSI”)。在Western Windows安装中,通常是代码页1252(类似于ISO-8859-1);在中文安装中,您可以获得代码页936(类似于GB-2312)。名称不完全符合该代码页的文件(例如西方机器上的思怞怟或中文机器上的Dobrý den)将无法访问。

您可以从控制面板 - >区域选项 - >高级 - >非Unicode程序的语言更改您的系统代码页。但是,即使您选择了cp936来获取中文字符,Apache似乎也试图将其文件名编码为UTF-8。不幸的是,您只能从Windows默认在不同地区的代码页范围中进行选择;你没有得到UTF-8。

关于我能想到的从这种文件夹名称运行的唯一方法是获取旧式的DOS 8.3文件名,该文件名仅为ASCII。如果文件系统中的功能处于打开状态,则可以使用dir /x从命令行查看8.3文件名。您可能会发现该文件夹的名称类似F8D5~1。从这个路径调用Apache而不是思怞怟,它至少应该启动...但如果你有更多的非ASCII文件名,你只会加载更多的问题。

+0

谢谢,短文件名解决了问题。 – Zsolti 2010-05-18 09:59:11

相关问题