分享到Facebook    分享到Plurk    分享到Twitter   分享到新浪微博

網頁設計為UTF8,用IE讀取空白的解決方式

Posted 星期二, 七月 13 2010 12:03 作者 黑熊

今天幫忙某協會解決UTF8網頁空白的問題,主要原因在於IE瀏覽器讀取時,不會自動切換到UTF8語系,仍停留在BIG5,需要手動切換才能解決。

經過網路查詢了一下方法,只需要將 <meta> 的語法註解放在<title>前就可以解決。

UTF8 聲明tag為 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

正確寫法順序如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body></body>
</html>

這樣就可以正確切換到utf8語系。

但如果使用的是Firefox、Sarafi、chrome的瀏覽器不會造成這個問題。

參考網路上的說明:

為什麼會這樣呢?因為這是由於IE解析網頁編碼時以HTML內的標籤優先,而後才是HTTP header內的訊息;而mozilla系列的流覽器則剛剛相反。

由於UTF-8為3個位元組表示一個漢字,而普通的GB2312或BIG5是兩個。頁面輸出時,由於上述原因,使瀏覽器解析、輸出<title></title>的內容時,如果在</title>前有奇數個全形字符時輸出的內容時,IE把UTF-8當作兩個位元組解析時出現半個漢字的情況,這時該半個漢字會和</title>的<會結合成一個亂碼字,導致IE無法讀完<title>部分,使整個頁面為空白輸出。

引用自 http://tw.myblog.yahoo.com/jw!NhSYS..BGBKJtVRYjNXX2esb7Q--/article?mid=1240

更改順序後,果真問題就迎刃而解,真想不到是順序問題所造成。

若想知道更多的消息,歡迎加入布雷克人生粉絲專頁!

說說您的看法?

(必填)
(必填)
(可選)
(必填)