解決UTF-8在IE中不能自動選擇編碼
來源:程序員人生 發(fā)布時間:2014-01-09 00:45:54 閱讀次數(shù):2529次
在windows操作系統(tǒng)上使用IE作為瀏覽器時。常常會發(fā)生這樣的問題:在瀏覽使用UTF-8編碼的網(wǎng)頁時,瀏覽器無法自動偵測(即沒有設(shè)定“自動選擇”編碼格式時)該頁面所用的編碼。即使網(wǎng)頁已經(jīng)聲明過編碼格式:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
,由此造成某些含有中文UTF-8編碼的頁面產(chǎn)生空白輸出。
如果使用的是Mozilla、Mozilla Firefox、Sarafi的瀏覽器這不會造成這個問題。這是由于IE解析網(wǎng)頁編碼時以HTML內(nèi)的標(biāo)簽優(yōu)先,而后才是HTTP header內(nèi)的訊息;而mozilla系列的瀏覽器則剛剛相反。
由于UTF-8為3個字節(jié)表示一個漢字,而普通的GB2312或BIG5是兩個。頁面輸出時,由于上述原因,使瀏覽器解析、輸出<title></title>的內(nèi)容時,如果在</title>前有奇數(shù)個全角字符時,IE把UTF-8當(dāng)作兩個字節(jié)解析時出現(xiàn)半個漢字的情況,這時該半個漢字會和</title>的<結(jié)合成一個亂碼字,導(dǎo)致IE無法讀完<title>部分,使整個頁面為空百輸出。而這個時候如果察看源文件的話,會發(fā)現(xiàn)實際上整個葉面全部已經(jīng)輸出了。
因此最簡單的解決辦法是在網(wǎng)頁文件的<head></head>標(biāo)簽中一定要把字符定義<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
放在<title></title>之前。
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進(jìn)行捐贈