自動目錄
症狀
一、Apache 送出的網頁是 UTF-8。
二、httpd.conf 中 AddDefaultCharset 關閉,如此交由瀏覽器自動偵測編碼。
AddDefaultCharset off
三、PHP沒有指定預設編碼
四、Firefox 正常顯示、但IE8 就是空白,IE8編碼設定是「自動偵測」可是自動偵測到的是 big5
初診
一、懷疑是 Utf-8 Bom的問題,用指令檢查,並不是 BOM
xxd -l 3 -p header.mtpl
下載到WINDOWS後開檔也沒有bom的字元
二、懷疑是伺服器送出的編碼有異,嘗試設定 CharsetDefault utf-8
並打開 AddDefaultCharset on 但得到的是 iso-xxxx 這個編碼
以上兩項費時1個半小時
下藥
一、以下為解決的用藥,果然藥到病除:將檔案的header原來和修改的比較
原來,4、5兩行要互換位置:
<html> <head> <title>精讚部落範例n.zipko.info</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head>
修改:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>精讚部落範例n.zipko.info</title> </head>
二、ie的自動偵測不知運作原理是什麼,不過看來是:
不管伺服器送出的內容是什麼編碼
IE去讀 header,讀到<title>這行,發現是中文字,就「自動偵測」是Big5,
我猜測IE8 是正體中文Windows的關係,沒有BOM的話無法正確判斷是 Big5或UTF-8
以上我花了大概二個小時解決一個「邏輯」問題..
註:現在utf-8的編碼寫法直接這樣寫就可以了,此文的http-equiv="xxx" 的寫法已經過時:
<meta charset="utf-8" />
怎麼樣,這兒的伙食吃得還習慣嗎?
編修 2009-09-15 01:34:14