[精讚] [會員登入]
151

UTF-8的網頁但IE8一片空白

UTF8編碼的網頁在Firefox 正常顯示、但IE8 就是空白,IE8編碼設定是「自動偵測」可是自動偵測到的是 big5...

此文完整連結 http://n.sfs.tw/10098

複製連結 UTF-8的網頁但IE8一片空白@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2016-10-29 22:18:22 最後編修
2016-10-29 22:12:25 By 瘦河馬
 

症狀

一、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

所以今後定要將編碼寫在<head>之後,以避免IE的白痴行為。

以上我花了大概二個小時解決一個「邏輯」問題..

註:現在utf-8的編碼寫法直接這樣寫就可以了,此文的http-equiv="xxx" 的寫法已經過時:

<meta charset="utf-8" />


怎麼樣,這兒的伙食吃得還習慣嗎?


編修 2009-09-15 01:34:14

你可能感興趣的文章

[HTTPS] Ubuntu +SSL +正式的CA 設定 利用正式的CA憑證,設定網站SSL,有別於過去使用的「未授權憑證」

[Apache] 利用.htaccess防盜圖 利用.htaccess防盜圖,同時也介紹一個產生防盜圖.htaccess檔的網站

強迫網頁預設編碼語系 大部分的瀏覽器如果編碼設成「自動偵測」時都能正確的分析。但世界並不會這麼平順完美,明明我這樣設定utf8他就是用big5丟出來...

UTF-8的網頁但IE8一片空白 UTF8編碼的網頁在Firefox 正常顯示、但IE8 就是空白,IE8編碼設定是「自動偵測」可是自動偵測到的是 big5...

[APACHE] 關於RewriteCond $1 RewriteCond $1的意義和解釋

[Apache] 自訂錯誤頁面及移掉歡迎頁 Apache 有一個歡迎頁,以正式網站來說,出現這頁有點不專業,該移除它..

[Apache] 顯示或不顯示錯誤 php預設錯誤不顯示,有三種方法可以顯示或不顯示錯誤

APACHE的記錄檔格式 LogFormat 語法 在APACHE中有定義一些記錄的語法模版 在 /etc/httpd/conf/httpd.conf 中: LogForm

我有話要說


限制:留言最高字數1000字,超過部分會被截掉。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

[jQuery] 利用load()來達成ajax的寫法 jQuery中利用load()來達成ajax的寫法,也有人稱他是假的ajax,作法就是..

為什麼要買長達二十年的保單? 為什麼要買長達二十年的保單?找一個可以說服我買二十年保單的理由。

[Freebsd] 定時測試 ADSL 是否斷線並重連 中華電信 ADSL 雖有固定 ip,可是他卻會不定時「斷線」, 使用以下的 方法可以定時測試是否斷線,以及重新撥接。

[bc] linux 的計算機 bc 設定小數位數、計算π、次方根 linux 的計算機 bc 設定小數位數、計算π、次方根

魔球中小女孩唱的歌 The show 魔球中小女孩唱的歌 The show