問(wèn)題:
我頁(yè)面編碼開(kāi)始是gb2312的,后來(lái)?yè)Q成了utf-8,結果用IETester測試,打開(kāi)ie6,7,8頁(yè)面是一片空白,但查看源文件又是完整的。在ie6和firefox下都正常,但是在ie7下偶爾會(huì )出現這樣的情況。
在網(wǎng)上找了找,發(fā)現問(wèn)題原因及解決方法如下:
解決:
<title>頁(yè)面</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>
原因:
為什么會(huì )出現這樣的問(wèn)題呢?這是由于解析網(wǎng)頁(yè)編碼時(shí)以html內的標簽優(yōu)先,而后才是http header內的訊息,而mozilla系列的瀏覽器則剛剛相反。
由于utf-8編碼的頁(yè)面為3個(gè)字節表示一個(gè)漢字,而普通的gb2313或big5是兩個(gè)。頁(yè)面輸出時(shí),由于上述原因,使瀏覽器解析、輸出<title></title>的內容時(shí),如果在</title>前有奇數個(gè)全角字符時(shí),把utf-8當作兩個(gè)字節解析時(shí)出現半個(gè)漢字的情況,這時(shí)該半個(gè)漢字會(huì )和</title>的"<"結合成一個(gè)亂碼字,導致無(wú)法讀完<title>部分,使整個(gè)頁(yè)面為空百輸出。而這個(gè)時(shí)候如果察看源文件的話(huà),會(huì )發(fā)現實(shí)際上整個(gè)頁(yè)面全部已經(jīng)輸出了。
因此最簡(jiǎn)單的解決辦法是在網(wǎng)頁(yè)文件的<head></head>標簽中一定要把字符定義<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />放在<title></title>之前。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。