Linux不解释UTF8编码的字符

因此,当我尝试访问它时,有以下文件Adán-y-Eva-50x50.jpg ,apache将其转换为Ad\xc3\xa1n-y-Eva-50x50.jpg并且不会find它,即使它存在。

这只适用于包含UTF8字符的文件名。

我在/etc/httpd/conf/httpd.conf已经有了以下configuration

 ... AddDefaultCharset UTF-8 ... IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable +Charset=UTF-8 ... 

并添加到我的根.htaccess的第一行:

 IndexOptions +Charset=UTF-8 

所有这些都无法加载这些types的文件。 有什么build议么?

UPDATE

只要提一下:我正在使用plesk面板预configuration的CentOS服务器上运行网站

    这里的问题似乎不是在您的浏览器,也不是您的Apacheconfiguration。 您需要仔细检查您的系统的区域设置。

    你需要检查Apache的locale是否启用了UTF-8。 要做到这一点,你可以运行命令:

     $ sudo su -l -c locale www-data 

    www-data是apache用户。 检查返回的语言环境是否看起来不像例如es_ES.UTF-8这意味着您的语言环境没有启用UTF-8。

    如果是这种情况,可以在CentOS机器上,在/etc/sysconfig/i18n上更改这个configuration,将LANG="es_ES"改为LANG="es_ES.UTF-8" 。 但是,为了这个工作,你的系统仍然需要这个语言的语言环境文件。 要检查它是否存在,请使用locale -a获取可用的语言环境列表。

    如果您的系统没有启用UTF-8语言环境,则可以使用以下命令生成一个:

     $ sudo localedef -i es_ES -f UTF-8 es_ES.utf8 

    并将其设置为默认语言。

    希望这个帮助!

    除了fboaventura的回答

    检查语言环境apache是​​否正在运行

     $ sudo su -l -c locale www-data 

    为了更改/etc/sysconfig/i18n i18nconfiguration:

    转到CentOS系统configuration目录

     $ cd /etc/sysconfig 

    制作您的语言设置文件的备份副本

     $ cp i18n i18n.backup 

    使用nano编辑语言设置文件

     $ nano i18n 

    编辑文件以包含您的configuration

    例如:

     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" 

    保存该文件并重新启动系统。

    其他资源