在windows操作系統(tǒng)上使用IE作為瀏覽器時(shí)。常常會(huì)發(fā)生這樣的問(wèn)題:在瀏覽使用UTF-8編碼的網(wǎng)頁(yè)時(shí),瀏覽器無(wú)法自動(dòng)偵測(cè)(即沒(méi)有設(shè)定“自動(dòng)選擇”編碼格式時(shí))該頁(yè)面所用的編碼。即使網(wǎng)頁(yè)已經(jīng)聲明過(guò)編碼格式:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
由此造成某些含有中文UTF-8編碼的頁(yè)面產(chǎn)生空白輸出。
如果使用的是Mozilla、Mozilla 瀏覽器、Sarafi的瀏覽器這不會(huì)造成這個(gè)問(wèn)題。這是由于IE解析網(wǎng)頁(yè)編碼時(shí)以HTML內(nèi)的標(biāo)簽優(yōu)先,而后才是HTTP header內(nèi)的訊息;而mozilla系列的瀏覽器則剛剛相反。
由于UTF-8為3個(gè)字節(jié)表示一個(gè)漢字,而普通的GB2312或BIG5是兩個(gè)。頁(yè)面輸出時(shí),由于上述原因,使瀏覽器解析、輸出<title></title>的內(nèi)容時(shí),如果在</title>前有奇數(shù)個(gè)全角字符時(shí),IE把UTF-8當(dāng)作兩個(gè)字節(jié)解析時(shí)出現(xiàn)半個(gè)漢字的情況,這時(shí)該半個(gè)漢字會(huì)和</title>的<結(jié)合成一個(gè)亂碼字,導(dǎo)致IE無(wú)法讀完<title>部分,使整個(gè)頁(yè)面為空百輸出。而這個(gè)時(shí)候如果察看源文件的話,會(huì)發(fā)現(xiàn)實(shí)際上整個(gè)葉面全部已經(jīng)輸出了。
因此最簡(jiǎn)單的解決辦法是在網(wǎng)頁(yè)文件的<head></head>標(biāo)簽中一定要把字符定義
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
放在<title></title>之前。