Adán-y-Eva-50x50.jpg
因此,当我尝试访问以下文件时,apache 会将其转换为Ad\xc3\xa1n-y-Eva-50x50.jpg
并且找不到它,即使它存在。
这种情况仅发生在包含 UTF8 字符的文件名中。
我的/etc/httpd/conf/httpd.conf
...
AddDefaultCharset UTF-8
...
IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable +Charset=UTF-8
...
并将其添加到我的根目录.htaccess
的第一行:
IndexOptions +Charset=UTF-8
所有这些都无法加载此类文件。有什么建议吗?
更新
顺便提一下:我在 CentOS 服务器上运行网站,并预先配置了 plesk 面板
答案1
这里的问题似乎不是出在您的浏览器或 Apache 配置上。您需要仔细检查系统的语言环境设置。
您需要检查 apache 正在运行的语言环境是否启用了 UTF-8。为此,您可以运行以下命令:
$ sudo su -l -c locale www-data
apache 用户在哪里www-data
。检查返回的区域设置是否看起来不像,例如,es_ES.UTF-8
这意味着您的区域设置未启用 UTF-8。
如果是这种情况,您可以在 CentOS 计算机上更改此配置,将/etc/sysconfig/i18n
行更改LANG="es_ES"
为LANG="es_ES.UTF-8"
。但是,为了使其正常工作,您的系统仍然需要此语言的语言环境文件。要检查它是否存在,请使用locale -a
获取可用语言环境列表。
如果您的系统没有启用 UTF-8 的区域设置,您可以使用以下命令生成一个:
$ sudo localedef -i es_ES -f UTF-8 es_ES.utf8
并将其设置为您的默认语言。
希望这有帮助!
答案2
除了 fboaventura 的回答
检查语言环境 apache 是否正在运行
$ sudo su -l -c locale www-data
为了更改i18n
配置/etc/sysconfig/i18n
:
进入CentOS系统配置目录
$ cd /etc/sysconfig
备份您的语言设置文件
$ cp i18n i18n.backup
使用 nano 编辑语言设置文件
$ nano i18n
编辑文件以包含您的配置
例如:
LANG="en_US.utf8"
SYSFONT="latarcyrheb-sun16"
SUPPORTED="en_US.utf8:en_US:en:fr_FR.utf8:fr_FR:fr :es_ES.utf8:es_ES:es:de_DE.utf8:de_DE:de:sv_SE.utf 8:sv_SE:sv:zh_CN.utf8:
zh_CN:zh:zh_TW.utf8:zh_TW:zh:ja_JP.utf8:ja_JP:ja:k o_KR.utf8:ko_KR:ko"
保存文件并重新启动系统。
其他资源