最近在設計網頁時,一直使用utf8(utf-8)來做編碼,但是常常網頁製作完成之後,卻在預覽時,總會出現一個問題…那就是會出現一片空白><" oh my god ,就算刪除再重做也是一樣 ><"真頭痛呀
而遇到這樣問題的解決方式,總是要自已去點瀏覽器上的 檢視/編碼/unicode(utf-8)才會出現所製作好的內容,但這樣的解決方式卻是治標不治本。
即使網頁已經聲明過編碼格式:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
但如果使用的是Mozilla、Mozilla 流覽器、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>(原因前段已說明)之前。
出處來源:http://shechung.spaces.live.com/blog/cns!ECC7BBA9D5D8215!326.entry
留言列表