Linux

Linux 不解釋 UTF8 編碼的字元

  • August 18, 2015

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

所有這些都沒有影響載入這些文件。有什麼建議麼?

更新

順便提一下:我在預配置了 plesk 面板的 CentOS 伺服器上執行網站

這裡的問題似乎不在於您的瀏覽器,也不在於您的 Apache 配置。您需要仔細檢查系統的區域設置。

您需要檢查正在執行的語言環境 apache 是否啟用了 UTF-8。為此,您可以執行以下命令:

$ sudo su -l -c locale www-data

www-dataapache使用者在哪裡。檢查返回的語言環境是否看起來不像,例如,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 

並將其設置為您的預設語言。

希望這有幫助!

引用自:https://serverfault.com/questions/463757