有没有人有解决方案?
不要那样做? :-)
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文件名,你只会加载更多的问题。
谢谢,短文件名解决了问题。 – Zsolti 2010-05-18 09:59:11