用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 显示乱码,切换編碼仍然无法解决。 |