close

最近在設計網頁時,一直使用utf8(utf-8)來做編碼,但是常常網頁製作完成之後,卻在預覽時,總會出現一個問題…那就是會出現一片空白><"  oh my god ,就算刪除再重做也是一樣 ><"真頭痛呀

而遇到這樣問題的解決方式,總是要自已去點瀏覽器上的 檢視/編碼/unicode(utf-8)才會出現所製作好的內容,但這樣的解決方式卻是治標不治本。

即使網頁已經聲明過編碼格式:

meta http-equiv="Content-Type" content="text/html; charset=UTF-8" / 

 

但如果使用的是MozillaMozilla 流覽器、Sarafi的流覽器這不會造成這個問題。

為什麼會這樣呢?因為這是由於IE解析網頁編碼時以HTML內的標籤優先,而後才是HTTP header內的訊息;而mozilla系列的流覽器則剛剛相反。

由於UTF-83個位元組表示一個漢字,而普通的GB2312BIG5是兩個。頁面輸出時,由於上述原因,使瀏覽器解析、輸出<title></title>的內容時,如果在</title>前有奇數個全形字符時輸出的內容時,IEUTF-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

arrow
arrow
    全站熱搜

    zhanmarx 發表在 痞客邦 留言(0) 人氣()