Apache安装在名称中包含中文字符的文件夹中

时间:2010-05-17 13:03:50

标签: windows apache

我想将一个Apache服务器安装到像windows下的c:\ anything \思怞怟\ anything2 \这样的文件夹中。 当我尝试启动服务时,它就是:

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 个答案:

答案 0 :(得分:1)

  

有没有人有解决方案?

不要那样做? : - )

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

虽然其他平台主要将UTF-8标准化为文件名的编码,但Windows使用特定于语言环境的系统默认代码页(误导性地称为“ANSI”)。在西方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文件名,那么你只会遇到更多问题。