IE不識別UTF8編碼(輸出空白頁面)的解決辦法
阿新 • • 發佈:2019-02-09
<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>之前。
實際上,其他編碼版本的也存在類似的問題,只是我們大家的瀏覽器預設編碼都是 GBK 所以更不容易覺察。