Apache Content-Type 編碼從目錄到目錄從 UTF-8 更改為 iso-88591
我有一個在 Apache 2.2.8 (Plesk 9.5.4) 上執行的站點
對於這個站點,有一個奇怪的行為,根目錄只有 html,並且帶有以下標頭,非常棒。
響應標頭
日期 2011 年 5 月 4 日星期三 00:57:26 GMT
伺服器 Apache
Last-Modified 星期一 2011 年 4 月 4 日 21:09:05 GMT
Etag “15013bf-5a7-4a01e2b6efe40”
Accept-Ranges 字節
Cache-Control max-age=300
Expires Wed, 04 May 2011 01:02:26 GMT
Vary Accept-Encoding
Content-Encoding gzip
Content-Length 564
Content-Type text/html; 字元集=utf-8
然後我在這個目錄上安裝了 osTickets,我把它翻譯成西班牙語,為了讓它工作,內容類型編碼需要設置為 UTF-8,它工作得很好。
響應標頭
日期 Wed, 04 May 2011 01:04:37 GMT
Server Apache
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control no-store, no-cache, must -revalidate, post-check=0, pre-check=0
Pragma no-cache
Vary Accept-Encoding
Content-Encoding gzip
Keep-Alive timeout=15, max=100
Connection Keep-Alive
Transfer-Encoding chunked
Content-Type text/html ; 字元集=UTF-8
這個目錄的問題來了,osTickets的管理面板,Apache無緣無故將編碼更改為iso-8859-1。
我嘗試將 AddDefaultCharset UTF-8 添加到 Apache 虛擬目錄配置文件中,添加具有相同 AddDefaultCharset UTF-8 的 .htaccess 文件,但我沒有運氣。
http://globalmit.com/tickets/scp/
響應標頭
日期 Wed, 04 May 2011 01:05:26 GMT
Server Apache
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control no-store, no-cache , must-revalidate, post-check=0, pre-check=0
Pragma no-cache
Vary Accept-Encoding
Content-Encoding gzip
Keep-Alive timeout=15, max=100
Connection Keep-Alive
Transfer-Encoding chunked
Content-Type text /html; 字元集=iso-8859-1
如何避免這種奇怪的 Apache 行為?
Apache 行為正確;PHP 不是。
不幸的是,由於所有字元串數據都是由 PHP 生成的,因此您在很大程度上依賴於您正在執行的應用程序是否具有良好的字元集支持 - 查看您是否可以在應用程序中修改任何設置以啟用 UTF -8 支持。