我在服务器上有一些非 ASCII 名称的文件,当我浏览 apache 生成的目录索引时,无法识别非 ASCII 字符(显示为?)。
我在.htaccess 文件中添加了说明:
IndexOptions Charset=UTF-8
我已经在 apache2 conf 文件中设置了默认字符集:
AddDefaultCharset UTF-8
在我的目录子句中,我有:
AllowOverride AuthConfig Indexes
但它仍然不起作用,还有其他建议吗?
答案1
您确定服务器上的文件名是使用 UTF-8 编码的吗?
如果您有较旧的文件并且居住在欧洲(就像我一样),则您的文件名很可能采用 ISO8859-1(有时也称为 latin-1)或 ISO8859-15 编码。Debian(以及 Ubuntu)曾经包含一个名为的软件包:
utf8-migration-tool
其中包含一个类似于向导的实用程序来转换文件名。
此工具是用脚本语言 Python 编写的。它包含一个名为的模块:
/usr/share/utf8-migration-tool/pylib/wizard/steps.py
它又包含一个名为
FileNameConversion
不幸的是,这个类需要重构才能用于操作文件系统某个部分的文件名。您是否想先将 Apache 配置更改为 ISO8859-1 进行简短测试?