Windows Apache安装在名称为中文字符的文件夹中

Windows Apache安装在名称为中文字符的文件夹中,windows,apache,Windows,Apache,我想将Apache服务器安装到c:\anything这样的文件夹中\思怞怟\windows下的anything2\项。 当我尝试启动服务时,它说: httpd:C:/anything/\xe6\x80\x98\xe6\x80\x99\e6\80\9a/anything2/apache/conf/httpd.conf的第xx行语法错误:ServerRoot必须是有效的目录 有人有解决办法吗 有人有解决办法吗 不要那样做?:-) Windows上的Unicode文件名对于通过基于字节的接口与操作系统

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

httpd:C:/anything/\xe6\x80\x98\xe6\x80\x99\e6\80\9a/anything2/apache/conf/httpd.conf的第xx行语法错误:ServerRoot必须是有效的目录

有人有解决办法吗

有人有解决办法吗

不要那样做?:-)

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

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

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

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