首頁  >  文章  >  web前端  >  具體介紹GBK以及UTF-8編碼的正確使用

具體介紹GBK以及UTF-8編碼的正確使用

黄舟
黄舟原創
2017-07-26 13:28:092519瀏覽

網頁編碼英文譯為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這幾種編碼方式間相互轉換。

如何讓瀏覽器正確辨識網頁編碼?一般在網頁中都要有以下一句話,指示此網頁的字元集編碼是GB2312。 (或UTF-8)

頁面有時候指定了編碼為什麼有時會出現亂碼?這可能是頁面申明編碼與文件本身編碼不一致,更多時候是以錯誤編碼打開頁面然後保存導致的,或者是用某些FTP軟體直接在線修改文件,比如CuteFTP,由於軟體編碼配置錯誤而導致轉換錯了編碼。這時候使用window的記事本打開,用「另存為」儲存為對應的編碼即可解決問題。

在windows作業系統上使用IE作為瀏覽器時,常常會發生這樣的問題:在瀏覽使用UTF-8編碼的網頁時,瀏覽器無法自動辨識該頁面所用的編碼,即使網頁已經聲明過編碼格式:,由此造成某些含有中文UTF-8編碼的頁面產生空白輸出。如果使用的是Firefox、Sarafi的瀏覽器這不會造成這個問題。這是由於IE解析網頁編碼時以HTML內的標籤優先,而後才是HTTP header內的訊息,而mozilla系列的瀏覽器則剛好相反。

由於UTF-8為3個位元組表示一個漢子,而普通的GB2312或BIG5是兩個。頁面輸出時,由於上述原因,使瀏覽器解析、輸出http://tbwsy.sinaapp.com/的內容時,如果在前有奇數個全角字符,IE把UTF-8當作兩個字節解析時出現半個漢字的情況,這時該半個漢字會和的<結合成一個亂碼字,導致IE無法讀完< title>部分,使整個頁面為空百輸出,而這個時候如果察看源文件的話,會發現實際上整個頁面全部已經輸出了,但瀏覽器不顯示內容。最簡單的解決方法就是把 放在之前。

以上是具體介紹GBK以及UTF-8編碼的正確使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn