DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> HTML基礎知識 >> HTML和Xhtml >> gbk utf8如何選擇 正確理解和使用GBK及UTF-8網頁編碼
gbk utf8如何選擇 正確理解和使用GBK及UTF-8網頁編碼
編輯:HTML和Xhtml     
網頁編碼英文譯為web page encoding,是在網頁中指定其特定的字符編碼格式的庫。
GBK是國家標准GB2312基礎上擴容後兼容GB2312的標准。GBK的文字編碼是用雙字節來表示的,即不論中、英文字符均使用雙字節來表示,為了區分中文,將其最高位都設定成1。GBK包含全部中文字符,是國家編碼,通用性比UTF8差,不過UTF8占用的數據庫比GBK大。

UTF-8:Unicode TransformationFormat-8bit,允許含BOM,但通常不含BOM。是用以解決國際上字符的一種多字節編碼,它對英文使用8位(即一個字節),中文使用24為(三個字節)來編碼。UTF-8包含全世界所有國家需要用到的字符,是國際編碼,通用性強。UTF-8編碼的文字可以在各國支持UTF8字符集的浏覽器上顯示。如果是UTF8編碼,則在外國人的英文IE上也能顯示中文,他們無需下載IE的中文語言支持包。
UTF-8版本雖然具有良好的國際兼容性,但中文需要比GBK/BIG5版本多占用50%的數據庫存儲空間,因此並非推薦使用,僅供對國際兼容性有特殊要求的用戶使用。簡單地說:對於中文較多的網站,適宜用GBK編碼節省數據庫空間。對於英文較多的網站,適宜用UTF-8節省數據庫空間。

GBK、GB2312等與UTF8如何轉換?GBK、GB2312等與UTF8之間都必須通過Unicode編碼才能相互轉換:GBK、GB2312——Unicode——UTF8;UTF8——Unicode——GBK、GB2312。使用Windows記事本的“另存為”,可以在GBK、Unicode、Unicode big endian和UTF-8這幾種編碼方式間相互轉換。

如何讓浏覽器正確識別網頁編碼?一般在網頁中都要有如下一句:<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,指示此網頁的字符集編碼是GB2312。(或者UTF-8)
頁面有時候指定了編碼為什麼有時會出現亂碼?這可能是頁面申明編碼與文件本身編碼不一致,更多時候是以錯誤編碼打開頁面然後保存導致的,或者是用某些FTP軟件直接在線修改文件,比如CuteFTP,由於軟件編碼配置錯誤而導致轉換錯了編碼。這時候使用window的記事本打開,用“另存為”保存為對應的編碼即可解決問題。

在windows操作系統上使用IE作為浏覽器時,常常會發生這樣的問題:在浏覽使用UTF-8編碼的網頁時,浏覽器無法自動識別該頁面所用的編碼,即使網頁已經聲明過編碼格式:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />,由此造成某些含有中文UTF-8編碼的頁面產生空白輸出。如果使用的是Firefox、Sarafi的浏覽器這不會造成這個問題。這是由於IE解析網頁編碼時以HTML內的標簽優先,而後才是HTTP header內的訊息,而mozilla系列的浏覽器則剛剛相反。

由於UTF-8為3個字節表示一個漢子,而普通的GB2312或BIG5是兩個。頁面輸出時,由於上述原因,使浏覽器解析、輸出<title></title>的內容時,如果在</title>前有奇數個全角字符,IE把UTF-8當作兩個字節解析時出現半個漢字的情況,這時該半個漢字會和</title>的<結合成一個亂碼字,導致IE無法讀完<title>部分,使整個頁面為空百輸出,而這個時候如果察看源文件的話,會發現實際上整個頁面全部已經輸出了,但浏覽器不顯示內容。最簡單的解決辦法是把<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 放在<title></title>之前。
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved