GB2312 GBK與UTF 8的區別

2021-07-13 23:15:28 字數 3748 閱讀 9389

首先,我們要明白,gb2312

、gbk

和utf-8

都是一種字元編碼,除此之外,還有好多字元編碼。只是對於我們中國人的**來說,用這三種編碼 比較多。簡單的說一下,為什麼要用編碼,在計算機內,儲存文字資訊用

asc ii

碼,每乙個字元對應著唯一的

ascii

碼。最初計算機是由美國發明的,他們也用的是鍵盤和上面的字母,所以他們的字元

ascii

好解決。但是我們中國 的就不同了,每個漢字要對應唯一的

ascii

碼。這樣,就出來了國家制定的字元編碼標準:

gb2312

、gbk

等。其他國家,其他語言也有他們對應的編碼 標準。

gb 就是國標的意思,

gb2312

和gbk

主要用於漢字的編碼,而

utf-8

是全世界通用的。意思就是說,如果你的網頁主要面對使用漢語的中國人的話,使用

gb2312

和gbk

非常好,文字儲存體積要小,有一些優點。如果你的網頁要面向世界的話,你再用

gb2312

和gbk

作為網頁編碼的話,有些電腦上的瀏 覽器沒有這種編碼,你的網頁漢字內容就會變成無法識別的亂碼。

它們通常用在網頁的meta

標籤內,例如:

,表示這個頁面使用的是

gb2312

編碼。這個資訊是給瀏覽器看的,瀏覽器會優先考慮使用從網頁頭部提取出來的編碼資訊對網頁進行解碼。當然, 我們也可以強制瀏覽器使用某種編碼解釋網頁,這樣我們就看到了傳說中的亂碼。請看下圖

ie瀏覽器:

編碼,我們可以看到現在是正常的。我們右擊頁面,選擇「編碼

」->「

其他」->「unicode

(utf-8)」

,意思就是強制瀏覽器使用

utf-8

的編碼方式解析頁面,我們可以看到奇蹟發生了:

編碼,卻被一台沒有

gb2312

編碼的電腦訪問了,裡面所有的漢字都成了亂碼。如果你使用

utf-8

編碼,在沒有漢字的電腦裡,仍然可以正常顯示,因為

utf-8

是通用的編碼,所有電腦都有。

所以,在編寫網頁時,盡量使用utf-8

編碼。

utf-8:

unicode transformation format-8bit

,允許含

bom,但通常不含

bom。是用以解決國際上字元的一種多位元組編碼,它對英文使用

8位(即乙個位元組),中文使用

24為(三個位元組)來編碼。

utf-8

包含全世界所有國家需要用到的字元,是國際編碼,通用性強。

utf-8

編碼的文字可以在各國支援

utf8

字符集的瀏覽器上顯示。如,如果是

utf8

編碼,則在外國人的英文

ieie

的中文語言支援包。

gbk是國家標準

gb2312

基礎上擴容後相容

gb2312

的標準。

gbk的文字編碼是用雙位元組來表示的,即不論中、英文本元均使用雙位元組來表示,為了區分中文,將其最高位都設定成1。

gbk包含全部中文字元,是國家編碼,通用性比

utf8

差,不過

utf8

占用的資料庫比

gbd大。

gbk、

gb2312

等與utf8

之間都必須通過

unicode

編碼才能相互轉換:

gbk、

gb2312

--unicode

--utf8

utf8--

unicode

--gbk

、gb2312

對於乙個**、論壇來說,如果英文本元較多,則建議使用utf-8

節省空間。不過現在很多論壇的外掛程式一般只支援

gbk。

gb2312是

gbk的子集,

gbk是

gb18030

的子集

gbk是包括中日韓字元的大字符集合

有時還是有點問題

為了避免所有亂碼問題,應該採用utf-8

,將來要支援國際化也非常方便

utf-8可以看作是大字符集,它包含了大部分文字的編碼。

使用utf-8

的乙個好處是其他地區的使用者(如香港台灣)無需安裝簡體中文支援就能正常**你的文字而不會出現亂碼。

gb2312是簡體中文的碼

gbk支援簡體中文及正體中文

big5支援正體中文

utf-8支援幾乎所有字元

中國大陸最常用的就是gbk18030

編碼,除此之外還有

gbk,

gb2312

,這幾個編碼的關係是這樣的。

最早制定的漢字編碼是gb2312

,包括6763

個漢字和

682個其它符號

95年重新修訂了編碼,命名

gbk1.0

,共收錄了

21886

個符號。

之後又推出了gbk18030

編碼,共收錄了

27484

個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民族文字,現在

windows

平台必需要支援

gbk18030

編碼。

按照gbk18030

、gbk

、gb2312

的順序,3種編碼是向下相容,同乙個漢字在三個編碼方案中是相同的編碼。

gb2312編碼大約包含

6000

多漢字(不包括特殊字元)

,編碼範圍為第一位

b0-f7,

第二位編碼範圍為

a1-fe(

第一位為cf時

,第二位為

a1-d3),

計算一下漢字個數為

6762

個漢字。當然還有其他的字元。包括控制鍵和其他字元大約

7573

個字元編碼

gbk編碼是對

g b2312

編碼的擴充,容納的漢字更多,但僅僅是擴充,沒有質的變化。保留了所有

g b2312編碼,

在此基礎上進行編碼範圍的擴充.容納

(包含特殊字元)共

22014

個字元編碼.

gb18030編碼是在

gbk編碼基礎上的擴充,因為漢字更多,僅僅使用兩位編碼已經不能

容納要求的漢字,所以採用了2\4

位混和的辦法,可以支援更多的漢字編碼。並且保留了原有的

gbk 2

位元組編碼相容

g b2312

和gbk

編碼的檔案。大概容納

55657

個編碼(

包含特殊字元)

unicode編碼

(也就是

utf編碼

):俗稱萬國碼,致力於使用統一的編碼準則表達各國的文字。

為表達更多的文字,utf-8

採用2/3

混編的方式。目前容納的漢字範圍小於

gbk編碼。並且以

3位元組的方式處理中文,帶來了相容性的問題,原有的

gbk,g b2312,gb18030

編碼檔案都不能正常的處理

,還有很長的路要走。

GB2312 GBK與UTF 8的區別

首先,我們要明白,gb2312 gbk和utf 8都是一種字元編碼,除此之外,還有好多字元編碼。只是對於我們中國人的 來說,用這三種編碼比較多。簡單的說一下,為什麼要用編碼,在計算機內,儲存文字資訊用asc ii碼,每乙個字元對應著唯一的ascii碼。最初計算機是由美國發明的,他們也用的是鍵盤和上面...

UTF 8與GB2312之間的互換

winapi的兩個函式 widechartomultibyte multibytetowidechar。int multibytetowidechar uint codepage,code page dword dwflags,character type options lpcstr lpmult...

gb2312和UTF 8的區別

gb2312編碼大約包含6000多漢字 不包括特殊字元 編碼範圍為第一位b0 f7,第二位編碼範圍為a1 fe 第一位為cf時,第二位為a1 d3 計算一下漢字個數為6762個漢字。當然還有其他的字元。包括控制鍵和其他字元大約7573個字元編碼 gbk編碼是對gb2312編碼的擴充,容納的漢字更多,...