當設計的網頁使用UTF-8編碼時,明明用其它瀏覽器,如Firefox or Google Chrome都可以正常瀏覽,
但就是IE老是剛開始開進去空白一片,然後要自己手動設定選擇編碼才能正常瀏覽。
以上情形就算有寫以下的編碼格式聲明設定tag,IE也無法自動切換
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
但如火狐那些瀏覽器就能正常瀏覽,並不會有如IE 6的此類問題。
為何會這樣?
在此引用爬過的文章,依照內容所示:
出處:http://tw.myblog.yahoo.com/jw!NhSYS..BGBKJtVRYjNXX2esb7Q--/article?mid=1240
由於IE解譯網頁編碼時以HTML內的標籤優先,而後才是HTTP header內的訊息、
而mozilla系列的流覽器則剛剛相反。
由於UTF-8為3個位元組表示一個漢字,而普通的GB2312或BIG5是兩個。頁面輸出時,由於上述原
因,使瀏覽器解析、輸出<title></title>的內容時,如果在</title>前有奇數個全形字符
時輸出的內容時,IE把UTF-8當作兩個位元組解析時出現半個漢字的情況,這時該半個漢字會和
</title>的<會結合成一個亂碼字,導致IE無法讀完<title>部分,使整個頁面為空白輸出。
看到這邊,心里有底了!!
解決方式應當很簡單,依照上面文意可以推出以下結論
原本會出問題的寫法:
<title>會出問題喔</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
正確的寫法應改成:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>不會出問題</title>
試驗過了之後,真的如此!!
解決方法就是把<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
寫在<title></title>前面就可以了。