用ie瀏覽utf8(utf-8)時出現網頁一片空白,需自行選取網頁上的檢視 編碼 unicode 的問題解決方式

ie瀏覽网页出现乱码,firefox,  google  Chrome,则不会出现乱码


在設計網頁時,一直使用utf8(utf-8)來做編碼,但是常常網頁製作完成之後,卻在預覽時,總會出現一個問題…那就是會出現一片空白><" oh my god ,就算刪除再重做也是一樣 >

<"真頭痛呀 而遇到這樣問題的解決方式,總是要自已去點瀏覽器上的 檢視/編碼/unicode(utf-8)才會出現所製作好的內容,但這樣的解決方式卻是治標不治本。 

即使網頁已經聲明過編碼格式: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

但如果使用的是Mozilla、Mozilla 浏覽器、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>(原因前段已說明)之前。


以上方法也适用gmail 收到的由MS Exchange 发出的mail 显示乱码,切换編碼仍然无法解决。