天天看點

IE中打開UTF-8編碼的中文網頁顯示空白頁的問題

偶爾遇到客戶求助,在IE中打開留言頁面時看到的是一些亂碼,将編碼從GB2312更改為UTF-8後則頁面為空白頁面。上網搜尋了一下,看到如下 兩篇文章,摘錄到這裡,給碰到同樣問題的朋友以幫助:

文摘一:

在windows作業系統上使用IE作為浏覽器時。常常會發生這樣的問題:在浏覽使用UTF-8編碼的網頁時,浏覽器無法自動偵測(即沒有設定“自 動選擇”編碼格式時)該頁面所用的編碼。即使網頁已經聲明過編碼格式:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />,由此造成某些含有中文UTF-8編碼的頁面産生空白輸出。

如果使用的是Mozilla、Mozilla Firefox、Sarafi的浏覽器這不會造成這個問題。這是由于IE解析網頁編碼時以HTML内的标簽優先,而後才是HTTP header内的訊息;而mozilla系列的浏覽器則剛剛相反。

由于UTF-8為3個位元組表示一個漢子,而普通的GB2312或BIG5是兩個。頁面輸出時,由于上述原因,使浏覽器解析、輸 出<title></title>的内容時,如果在</title>前有奇數個全角字元時,IE把UTF-8當作兩 個位元組解析時出現半個漢字的情況,這時該半個漢字會和</title>的<結合成一個亂碼字,導緻IE無法讀 完<title>部分,使整個頁面為空百輸出。而這個時候如果察看源檔案的話,會發現實際上整個葉面全部已經輸出了。

是以最簡單的解決辦法是再網頁檔案的<head></head>标簽中一定要把字元定義<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />放在<title></title>之前。

繼續閱讀