標籤:

GB2312、GBK、GB18030 這幾種字符集的主要區別是什麼?


1 GB2312-80

GB 2312 或 GB 2312-80 是中國國家標準簡體中文字符集,全稱《信息交換用漢字編碼字符集·基本集》,又稱 GB 0,由中國國家標準總局發布,1981 年 5 月 1 日實施。GB 2312 編碼通行於中國大陸;新加坡等地也採用此編碼。中國大陸幾乎所有的中文系統和國際化的軟體都支持 GB 2312。

GB 2312 標準共收錄 6763 個漢字,其中一級漢字 3755 個,二級漢字 3008 個;同時收錄了包括拉丁字母、希臘字母、日文平假名及片假名字母、俄語西里爾字母在內的 682 個字元。

  • GB 2312 的出現,基本滿足了漢字的計算機處理需要,它所收錄的漢字已經覆蓋中國大陸99.75% 的使用頻率。
  • 對於人名、古漢語等方面出現的罕用字,GB 2312 不能處理,這導致了後來 GBK 及 GB 18030 漢字字符集的出現。

GB 2312 對任意一個圖形字元都採用兩個位元組表示,並對所收漢字進行了「分區」處理,每區含有 94 個漢字/符號,分別對應第一位元組和第二位元組。這種表示方式也稱為區位碼。

  • 01-09 區為特殊符號。
  • 16-55 區為一級漢字,按拼音排序。
  • 56-87 區為二級漢字,按部首/筆畫排序。

10-15 區及 88-94 區則未有編碼。
GB 2312 的編碼範圍為 2121H-777EH,與 ASCII 有重疊,通行方法是將 GB 碼兩個位元組的最高位置 1 以示區別。

2 GBK

GBK 漢字內碼擴展規範K 為漢語拼音 Kuo Zhan(擴展)中「擴」字的聲母。英文全稱 Chinese Internal Code Specification。

GBK 共收入 21886 個漢字和圖形符號,包括:

  • GB 2312 中的全部漢字、非漢字元號。
  • BIG5 中的全部漢字。
  • 與 ISO 10646 相應的國家標準 GB 13000 中的其它 CJK 漢字,以上合計 20902 個漢字。
  • 其它漢字、部首、符號,共計 984 個。

GBK 向下與 GB 2312 完全兼容,向上支持 ISO 10646 國際標準,在前者向後者過渡過程中起到的承上啟下的作用。

GBK 採用雙位元組表示,總體編碼範圍為 8140-FEFE 之間,首位元組在 81-FE 之間,尾位元組在 40-FE 之間,剔除 XX7F 一條線。GBK 編碼區分三部分:

  • 漢字區 包括

GBK/2:OXBOA1-F7FE, 收錄 GB 2312 漢字 6763 個,按原序排列;
GBK/3:OX8140-AOFE,收錄 CJK 漢字 6080 個;
GBK/4:OXAA40-FEAO,收錄 CJK 漢字和增補的漢字 8160 個。

  • 圖形符號區 包括

GBK/1:OXA1A1-A9FE,除 GB 2312 的符號外,還增補了其它符號
GBK/5:OXA840-A9AO,擴除非漢字區。

  • 用戶自定義區

GBK 區域中的空白區,用戶可以自己定義字元。

3 GB18030

GB 18030,全稱:國家標準 GB 18030-2005《信息技術中文編碼字符集》,是中華人民共和國現時最新的內碼字集,是 GB 18030-2000《信息技術信息交換用漢字編碼字符集基本集的擴充》的修訂版。
GB 18030 與 GB 2312-1980 和 GBK 兼容,共收錄漢字70244個。

  • 與 UTF-8 相同,採用多位元組編碼,每個字可以由 1 個、2 個或 4 個位元組組成。
  • 編碼空間龐大,最多可定義 161 萬個字元。
  • 支持中國國內少數民族的文字,不需要動用造字區。
  • 漢字收錄範圍包含繁體漢字以及日韓漢字

GB 18030 編碼是一二四位元組變長編碼。

  • 單位元組,其值從 0 到 0x7F,與 ASCII 編碼兼容。
  • 雙位元組,第一個位元組的值從 0x81 到 0xFE,第二個位元組的值從 0x40 到 0xFE(不包括0x7F),與 GBK 標準兼容。
  • 四位元組,第一個位元組的值從 0x81 到 0xFE,第二個位元組的值從 0x30 到 0x39,第三個位元組從0x81 到 0xFE,第四個位元組從 0x30 到 0x39。

參考資料:
http://blog.csdn.net/liujinchengjx/archive/2007/03/13/1527909.aspx
http://zh.wikipedia.org/wiki/GB_2312
http://zh.wikipedia.org/wiki/GBK
http://zh.wikipedia.org/wiki/GB_18030


ASCII、Unicode、GBK和UTF-8字元編碼的區別聯繫

轉載: ASCII、Unicode、GBK和UTF-8字元編碼的區別聯繫

很久很久以前,有一群人,他們決定用8個可以開合的晶體管來組合成不同的狀態,以表示世界上的萬物。他們看到8個開關狀態是好的,於是他們把這稱為」位元組「。再後來,他們又做了一些可以處理這些位元組的機器,機器開動了,可以用位元組來組合出很多狀態,狀態開始變來變去。他們看到這樣是好的,於是它們就這機器稱為」計算機「。

開始計算機只在美國用。八位的位元組一共可以組合出256(2的8次方)種不同的狀態。 他們把其中的編號從0開始的32種狀態分別規定了特殊的用途,一但終端、印表機遇上約定好的這些位元組被傳過來時,就要做一些約定的動作。遇上0×10, 終端就換行,遇上0×07, 終端就向人們嘟嘟叫,例好遇上0x1b, 印表機就列印反白的字,或者終端就用彩色顯示字母。他們看到這樣很好,於是就把這些0×20以下的位元組狀態稱為」控制碼」。他們又把所有的空 格、標點符號、數字、大小寫字母分別用連續的位元組狀態表示,一直編到了第127號,這樣計算機就可以用不同位元組來存儲英語的文字了。大家看到這樣,都感覺 很好,於是大家都把這個方案叫做ANSI 的」Ascii」編碼(American Standard Code for Information Interchange,美國信息互換標準代碼)。當時世界上所有的計算機都用同樣的ASCII方案來保存英文文字。

後來,就像建造巴比倫塔一樣,世界各地的都開始使用計算機,但是很多國家用的不是英文,他們的字母里有許多是ASCII里沒有的,為了可以在計算機保存他們的文字,他們決定採用 127號之後的空位來表示這些新的字母、符號,還加入了很多畫表格時需要用下到的橫線、豎線、交叉等形狀,一直把序號編到了最後一個狀態255。從128 到255這一頁的字符集被稱」擴展字符集「。從此之後,貪婪的人類再沒有新的狀態可以用了,美帝國主義可能沒有想到還有第三世界國家的人們也希望可以用到計算機吧!

等中國人們得到計算機時,已經沒有可以利用的位元組狀態來表示漢字,況且有6000多個常用漢字需要保存呢。但是這難不倒智慧的中國人民,我們不客氣地把那些127號之後的奇異符號們直接取消掉, 規定:一個小於127的字元的意義與原來相同,但兩個大於127的字元連在一起時,就表示一個漢字,前面的一個位元組(他稱之為高位元組)從0xA1用到 0xF7,後面一個位元組(低位元組)從0xA1到0xFE,這樣我們就可以組合出大約7000多個簡體漢字了。在這些編碼里,我們還把數學符號、羅馬希臘的字母、日文的假名們都編進去了,連在 ASCII 里本來就有的數字、標點、字母都統統重新編了兩個位元組長的編碼,這就是常說的」全形」字元,而原來在127號以下的那些就叫」半形」字元了。 中國人民看到這樣很不錯,於是就把這種漢字方案叫做 「GB2312「。GB2312 是對 ASCII 的中文擴展。

但是中國的漢字太多了,我們很快就就發現有許多人的人名沒有辦法在這裡打出來,特別是某些很會麻煩別人的國家領導人。於是我們不得不繼續把 GB2312 沒有用到的碼位找出來老實不客氣地用上。 後來還是不夠用,於是乾脆不再要求低位元組一定是127號之後的內碼,只要第一個位元組是大於127就固定表示這是一個漢字的開始,不管後面跟的是不是擴展字符集里的內容。結果擴展之後的編碼方案被稱為 GBK 標準,GBK包括了GB2312 的所有內容,同時又增加了近20000個新的漢字(包括繁體字)和符號。 後來少數民族也要用電腦了,於是我們再擴展,又加了幾千個新的少數民族的字,GBK擴成了 GB18030。從此之後,中華民族的文化就可以在計算機時代中傳承了。 中國的程序員們看到這一系列漢字編碼的標準是好的,於是通稱他們叫做 「DBCS「(Double Byte Charecter Set 雙位元組字符集)。在DBCS系列標準里,最大的特點是兩位元組長的漢字字元和一位元組長的英文字元並存於同一套編碼方案里,因此他們寫的程序為了支持中文處理,必須要注意字串里的每一個位元組的值,如果這個值是大於127的,那麼就認為一個雙位元組字符集里的字元出現了。那時候凡是受過加持,會編程的計算機僧侶 們都要每天念下面這個咒語數百遍: 「一個漢字算兩個英文字元!一個漢字算兩個英文字元……」

因為當時各個國家都像中國這樣搞出一套自己的編碼標準,結果互相之間誰也不懂誰的編碼,誰也不支持別人的編碼,連大陸和台灣這樣只相隔了150海里,使用著同一種語言的兄弟地區,也分別採用了不同的 DBCS 編碼方案——當時的中國人想讓電腦顯示漢字,就必須裝上一個」漢字系統」,專門用來處理漢字的顯示、輸入的問題,但是那個台灣的愚昧封建人士寫的算命程序就必須加裝另一套支持 BIG5 編碼的什麼」倚天漢字系統」才可以用,裝錯了字元系統,顯示就會亂了套!這怎麼辦?而且世界民族之林中還有那些一時用不上電腦的窮苦人民,他們的文字又怎麼辦? 真是計算機的巴比倫塔命題啊!

正在這時,大天使加百列及時出現了——一個叫 ISO (國際標誰化組織)的國際組織決定著手解決這個問題。他們採用的方法很簡單:廢了所有的地區性編碼方案,重新搞一個包括了地球上所有文化、所有字母和符號 的編碼!他們打算叫它」Universal Multiple-Octet Coded Character Set」,簡稱 UCS, 俗稱 「unicode「。
unicode開始制訂時,計算機的存儲器容量極大地發展了,空間再也不成為問題了。於是 ISO 就直接規定必須用兩個位元組,也就是16位來統一表示所有的字元,對於ASCII里的那些「半形」字元,unicode包持其原編碼不變,只是將其長度由原來的8位擴展為16位,而其他文化和語言的字元則全部重新統一編碼。由於」半形」英文符號只需要用到低8位,所以其高8位永遠是0,因此這種大氣的方案在保存英文文本時會多浪費一倍的空間。

這時候,從舊社會裡走過來的程序員開始發現一個奇怪的現象:他們的strlen函數靠不住了,一個漢字不再是相當於兩個字元了,而是一個!是的,從unicode開始,無論是半形的英文字母,還是全形的漢字,它們都是統一的」一個字元「!同時,也都是統一的」兩個位元組「,請注意」字元」和」位元組」兩個術語的不同,「位元組」是一個8位的物理存貯單元,而「字元」則是一個文化相關的符號。在unicode中,一個字元就是兩個位元組。一個漢字算兩個英文字元的時代已經快過去了。

unicode同樣也不完美,這裡就有兩個的問題,一個是,如何才能區別unicode和ascii?計算機怎麼知道三個位元組表示一個符號,而不是分別表示三個符號呢?第二個問題是,我們已經知道,英文字母只用一個位元組表示就夠了,如果unicode統一規定,每個符號用三個或四個位元組表示,那麼每個英文字母前都必然有二到三個位元組是0,這對於存儲空間來說是極大的浪費,文本文件的大小會因此大出二三倍,這是難以接受的。

unicode在很長一段時間內無法推廣,直到互聯網的出現,為解決unicode如何在網路上傳輸的問題,於是面向傳輸的眾多 UTF(UCS Transfer Format)標準出現了,顧名思義,UTF-8就是每次8個位傳輸數據,而UTF-16就是每次16個位。UTF-8就是在互聯網上使用最廣的一種unicode的實現方式,這是為傳輸而設計的編碼,並使編碼無國界,這樣就可以顯示全世界上所有文化的字元了。

UTF-8最大的一個特點,就是它是一種變長的編碼方式。它可以使用1~4個位元組表示一個符號,根據不同的符號而變化位元組長度,當字元在ASCII碼的範圍時,就用一個位元組表示,保留了ASCII字元一個位元組的編碼做為它的一部分,注意的是unicode一個中文字元佔2個位元組,而UTF-8一個中文字元佔3個位元組)。從unicode到uft-8並不是直接的對應,而是要過一些演算法和規則來轉換。

Unicode符號範圍 | UTF-8編碼方式

(十六進位) | (二進位)
—————————————————————–
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

之前一直對字元編碼很模糊,網查資料被忽悠地暈頭轉向,看完這篇風趣的文章,把之前模糊的知識點串聯起來,並稍加總結,我和我的小夥伴們都明白了!


  • GB2312

    1980年,一共收錄了7445個字元,包括6763個漢字和682個其它符號。

  • GBK
    • 是微軟對GB2312的擴展,向下兼容GB2312編碼,出現於Windows 95簡體中文版中。

    • 是微軟標準但不是國家標準。

  • GB18030

    2000年,取代了GBK1.0的正式國家標準。該標準收錄了27484個漢字,同時還收錄了一些少數民族文字。

  • GB13000

    GB13000等同於國際標準的《通用多八位編碼字符集 (UCS)》 ISO10646.1,就是等同於Unicode的標準,代碼頁等等的都使用UTF的一套標準。

可以簡單的區分為 GB 2312 過時標準、GBK 微軟標準、GB 18030 國家標準三個標準。

一般情況用 GB18030即可,方正都是向下兼容的


Unicode、GB2312、GBK和GB18030中的漢字

GB18030有兩個版本:GB18030-2000和GB18030-2005。GB18030-2000是GBK的取代版本,它的主要特點是在GBK基礎上增加了CJK統一漢字擴充A的漢字。GB18030-2005的主要特點是在GB18030-2000基礎上增加了CJK統一漢字擴充B的漢字。本文數一數GB18030中的漢字,也順便看看其它標準中的漢字。

1 Unicode中的漢字

在Unicode 5.0的99089個字元中,有71226個字元與漢字有關。它們的分布如下:

Block名稱開始碼位結束碼位字元數CJK統一漢字4E009FBB20924CJK統一漢字擴充A34004DB56582CJK統一漢字擴充B200002A6D642711CJK兼容漢字F900FA2D302CJK兼容漢字FA30FA6A59CJK兼容漢字FA70FAD9106CJK兼容漢字補充2F8002FA1D542

如果不算兼容漢字,Unicode目前支持的漢字總數是20924+6582+42711=70217。

這裡有一個細節。在早期的Unicode版本中,CJK統一漢字區的範圍是0x4E00-0x9FA5,也就是我們經常提到的20902個漢字。當前版本的Unicode增加了22個字元,碼位是0x9FA6-0x9FBB。它們是:

那麼GB18030是否支持這22個字元?後面還會討論。

2 GB2312

1980年的GB2312一共收錄了7445個字元,包括6763個漢字和682個其它符號。漢字區的內碼範圍高位元組從B0-F7,低位元組從A1-FE,佔用的碼位是72*94=6768。其中有5個空位是D7FA-D7FE。

這6763個漢字在Unicode中不是連續的,分布在CJK統一漢字字元區(0x4E00-0x9FA5)的20902個漢字中。

3 GBK

1995年的漢字擴展規範GBK1.0收錄了21886個符號,包括21003個漢字和883個其它符號。

這21003漢字包括CJK統一漢字區的20902個漢字。餘下的101個漢字包括:

  • 增補漢字和部首80個,包括28個部首和52個漢字。GBK編碼是從FE50-FE7E,FE80-FEA0。下圖標註了Unicode編碼。

在制定GBK時,Unicode中還沒有這些字元,所以使用了專用區的碼位,這80個字元的碼位是0xE815-0xE864。後來,Unicode將52個漢字收錄到「CJK統一漢字擴充A」。28個部首中有14個部首被收錄到「CJK部首補充區」。所以在上圖中,這些字元都有兩個Unicode編碼。

上圖中淡黃色背景的8個部首被收錄到「CJK統一漢字區」的新增區域,即前面提到的0x9FA6-0x9FBB。還有6個淡灰色背景的部首被Unicode收錄到「CJK統一漢字擴充B」(網友slt指正)。

請注意,淡黃色和淡灰色的14個字元按照GB18030還是應該映射到PUA碼位。這14個字元與非PUA碼位的映射關係只是網友找出來的,不是標準規定的。如果按照GBK編碼,這80個字元應該全部映射到PUA碼位。GB18030將其中66個字元映射到了非PUA碼位。不過在Windows中,簡體中文區域的默認代碼頁還是GBK,不是GB18030。

  • CJK兼容漢字區挑選出來的21個漢字。見下表:

漢字GBK編碼Unicode編碼郎FD9CF92C凉FD9DF979秊FD9EF995裏FD9FF9E7隣FDA0F9F1兀FE40FA0C嗀FE41FA0D﨎FE42FA0E﨏FE43FA0F﨑FE44FA11﨓FE45FA13﨔FE46FA14礼FE47FA18﨟FE48FA1F蘒FE49FA20﨡FE4AFA21﨣FE4BFA23﨤FE4CFA24﨧FE4DFA27﨨FE4EFA28﨩FE4FFA29

4 GB18030-2000

4.1 字彙

GB18030-2000的字彙部分是這樣寫的:

本標準收錄的字元分別以單位元組、雙位元組和四位元組編碼。

5.1 單位元組部分

  本標準中,單位元組的部分收錄了GB 11383的0x00到0x7F全部128個字元及單位元組編碼的歐元符號。

5.2 雙位元組部分

  本標準中,雙位元組的部分收錄內容如下:

  GB 13000.1的全部CJK統一漢字字元。

  GB 13000.1的CJK兼容區挑選出來的21個漢字。

  GB 13000.1中收錄而GB 2312未收錄的我國台灣地區使用的圖形字元139個。

  GB 13000.1收錄的其它字元31個。

  GB 2312中的非漢字元號。

  GB 12345 的豎排標點符號19個。

  GB 2312未收錄的10個小寫羅馬數字。

  GB 2312未收錄的帶音調的漢語拼音字母5個以及ɑ 和ɡ 。

  漢字數字「〇」。

  表意文字描述符13個。

  增補漢字和部首/構件80個。

  雙位元組編碼的歐元符號。

5.3 四位元組部分

  本標準的四位元組的部分,收錄了上述雙位元組字元之外的,包括CJK統一漢字擴充A在內的GB 13000.1 中的全部字元。

4.2 漢字

如下表所示,GB18030-2000收錄了27533個漢字:

類別碼位範圍碼位數字元數字元類型雙位元組部分第一位元組 0xB0-0xF7

第二位元組 0xA1-0xFE67686763漢字第一位元組0x81-0xA0

第二位元組0x40-0xFE60806080漢字第一位元組0xAA-0xFE

第二位元組0x40-0xA081608160漢字四位元組部分第一位元組0x81-0x82

第二位元組0x30-0x39

第三位元組0x81-0xFE

第四位元組0x30-0x3965306530CJK統一漢字擴充A

27533就是6763+6080+8160+6530。雙位元組部分的6763+6080+8160=21003個漢字就是GBK的21003個漢字。

在Unicode中,CJK統一漢字擴充A有6582個漢字,為什麼這裡只有6530個漢字?

這是因為在GBK時代,雙位元組部分已經收錄過CJK統一漢字擴充A的52個漢字,所以還餘6530個漢字。

5 GB18030-2005

5.1 字彙

GB18030-2005的字彙部分是這樣寫的:

本標準收錄的字元分別以單位元組、雙位元組或四位元組編碼。

5.1 單位元組部分

  本標準中,單位元組的部分收錄了GB/T 11383-1989的0x00到0x7F全部128個字元。

5.2 雙位元組部分

  本標準中,雙位元組的部分收錄內容如下:

  GB 13000.1-1993的全部CJK統一漢字字元。見附錄A。

  GB 13000.1-1993的CJK兼容區挑選出來的21個漢字。見附錄A。

  GB 13000.1-1993中收錄而GB 2312未收錄的我國台灣地區使用的圖形字元139個。見附錄A。

  GB 13000.1-1993收錄的其它字元31個。見附錄A。

  GB 2312中的非漢字元號。見附錄A。

  GB 12345 的豎排標點符號19個。見附錄A。

  GB 2312未收錄的10個小寫羅馬數字。見附錄A。

  GB 2312未收錄的帶音調的漢語拼音字母5個以及ɑ 和ɡ 。見附錄A。

  漢字數字「〇」。 見附錄A。

  表意文字描述符13個。見附錄A和附錄B。

  對GB 13000.1-1993增補的漢字和部首/構件80個。見附錄A和附錄C。

  雙位元組編碼的歐元符號。見附錄A。

5.3 四位元組部分

  本標準的四位元組的部分,收錄了上述雙位元組字元之外的,GB 13000的CJK統一漢字擴充A、CJK統一漢字擴充B和已經在GB13000中編碼的我國少數民族文字的字元。見附錄D。

GB18030-2005最主要的變化是增加了CJK統一漢字擴充B。它還去掉了單位元組編碼的歐元符號(0x80)。

5.2 漢字

如下表所示,GB18030-2005收錄了70244個漢字:

類別碼位範圍碼位數字元數字元類型雙位元組部分第一位元組 0xB0-0xF7

第二位元組 0xA1-0xFE67686763漢字第一位元組0x81-0xA0

第二位元組0x40-0xFE60806080漢字第一位元組0xAA-0xFE

第二位元組0x40-0xA081608160漢字四位元組部分第一位元組0x81-0x82

第二位元組0x30-0x39

第三位元組0x81-0xFE

第四位元組0x30-0x3965306530CJK統一漢字擴充A第一位元組0x95-0x98

第二位元組0x30-0x39

第三位元組0x81-0xFE

第四位元組0x30-0x394271142711CJK統一漢字擴充B

70244就是6763+6080+8160+6530+42711。

6 結束語

GB2312有6763個漢字,GBK有21003個漢字,GB18030-2000有27533個漢字,GB18030-2005有70244個漢字。

Unicode 5.0中,如果不算兼容區,目前有70217個漢字。讓我們比較一下Unicode的70217漢字和GB18030-2005中的70244漢字:

GB18030-2005Unicode 5.0對應的Unicode編碼CJK統一漢字的20902漢字CJK統一漢字的20902漢字0x4E00-0x9FA5CJK統一漢字擴充A的6582漢字CJK統一漢字擴充A的6582漢字0x3400-0x4DB5CJK統一漢字擴充B的42711漢字CJK統一漢字擴充B的42711漢字0x20000-0x2A6D6CJK部首補充區的14個部首未計入2E81, 2E84, 2E88, 2E8B, 2E8C, 2E97, 2EA7, 2EAA, 2EAE, 2EB3, 2EB6, 2EB7, 2EBB, 2ECACJK兼容漢字區的21個漢字未計入F92C, F979, F995, F9E7, F9F1, FA0C, FA0D, FA0E, FA0F, FA11, FA13, FA14, FA18, FA1F, FA20, FA21, FA23, FA24, FA27, FA28, FA29「

」8個部首CJK統一漢字區新增了這8個字元0x9FB4-0x9FBB未計入CJK統一漢字區新增的14個字元0x9FA6-0x9FB3

CJK統一漢字區新增的0x9FA6-0x9FB3這14個字元在GB18030中有對應的碼位(0x82358F33-0x82358F39, 0x82359030-0x82359039, 0x82359130-0x82359134),不過GB18030沒有列出這些字元。

附錄1 GBK增補的80個漢字和部首

GBK增補的80個字元本來是放在PUA區的,後來又被Unicode收錄。所以既可以用PUA區的編碼表示,也可以用非PUA編碼表示。正文中的表格可能不便複製,這裡補充一張表格:

漢字GBK編碼PUA編碼非PUA編碼FE50E8152E81FE51E81620087FE52E81720089FE53E818200CCFE54E8192E84FE55E81A3473FE56E81B3447FE57E81C2E88FE58E81D2E8BFE59E81E9FB4FE5AE81F359EFE5BE820361AFE5CE821360EFE5DE8222E8CFE5EE8232E97FE5FE824396EFE60E8253918FE61E8269FB5FE62E82739CFFE63E82839DFFE64E8293A73FE65E82A39D0FE66E82B9FB6FE67E82C9FB7棡FE68E82D3B4EFE69E82E3C6EFE6AE82F3CE0FE6BE8302EA7FE6CE831215D7FE6DE8329FB8FE6EE8332EAAFE6FE8344056FE70E835415FFE71E8362EAEFE72E8374337FE73E8382EB3FE74E8392EB6FE75E83A2EB7FE76E83B2298FFE77E83C43B1FE78E83D43ACFE79E83E2EBBFE7AE83F43DDFE7BE84044D6FE7CE8414661FE7DE842464CFE7EE8439FB9FE80E8444723FE81E8454729FE82E846477CFE83E847478DFE84E8482ECAFE85E8494947FE86E84A497AFE87E84B497DFE88E84C4982FE89E84D4983FE8AE84E4985FE8BE84F4986FE8CE850499FFE8DE851499BFE8EE85249B7FE8FE85349B6FE90E8549FBAFE91E855241FEFE92E8564CA3FE93E8574C9FFE94E8584CA0FE95E8594CA1FE96E85A4C77FE97E85B4CA2FE98E85C4D13FE99E85D4D14FE9AE85E4D15FE9BE85F4D16FE9CE8604D17FE9DE8614D18FE9EE8624D19FE9FE8634DAEFEA0E8649FBB


GB 2312 是參考 JIS 的字符集。

GBK 是在 GB 2312-EUC 的基礎上按當時的 Unicode CJK 擴充的。

GB 18030 是對 GB 2312-EUC 的擴充,參考 GBK,是一種 UTF。

因此主要區別自然就是包含的字元數。


GBK編碼

GBK 編碼標準,全稱《漢字內碼擴展規範》(GBK),英文名稱 Chinese Internal Code Specification,中華人民共和國全國信息技術標準化技術委員會1995年12月1日制定,國家技術監督局標準化司、電子工業部科技與質量監督司1995年12月15日聯合以技監標函[1995]229號文件的形式,將它確定為技術規範指導性文件,發布和實施。這一版的GBK規範為1.0版。GB即「國標」,K是「擴展」的漢語拼音第一個字母。 GBK向下與GB 2312編碼兼容,向上支持 ISO 10646.1 國際標準,是前者向後者過度過程中的一個承上啟下的標準。 GBK共收錄21886個漢字和圖形符號,其中漢字(包括部首和構件)21003個,圖形符號883個。

GB 18030編碼

GB 18030有兩個版本:GB 18030-2000和GB 18030-2005. GB 18030-2000是GBK的取代版本,它的主要特點是在GBK的基礎上增加了CJK統一漢字擴充A的漢字,GB 18030-2005的主要特點是在GB 18030-2000基礎上增加了CJK統一漢字擴充B的漢字。 GB 18030-2000,全稱《信息技術 信息交換用漢字編碼字符集 基本集的擴充》,中華人民共和國信息產業部電子工業標準化研究所起草,由國家質量技術監督局於2000年3月17號發布。GB 18030-2000共收錄27533個漢字。 GB 18030,全稱:國家標準 GB 18030-2005《信息技術 中文編碼字符集》,是中華人民共和國現在最新的內碼字符集,是GB 18030-2000的修訂版。GB18030-2005 共收錄漢字70244個。現行版本為國家質量監督檢驗總局和中國國家標準化管理委員會於2005年11月8日發布,2006年5月1日實施。此規格為在中國境內所有軟體產品支持的強制規格。

GB2312

GB 2312-80 編碼是中華人民共和國國家標準漢字信息交換用編碼,全稱《信息交換用漢字編碼字符集基本集》標準號為GB 2312-80(GB是「國標」二字的漢語拼音縮寫),由中華人民共和國國家標準總局發布,1981年5與1號發布,1981年10月1日實施。它是一個簡化字漢字的編碼,通行於中國大陸地區及海外使用簡體中文的地區(如新加坡等)。 GB 2312-80 收錄簡化漢字及一般符號、序號、數字、拉丁字母、日文假名、希臘字母、俄文字母、漢語拼音符號、漢語注音字母、共7445個圖形字元。其中漢字以外的圖形字元682個,漢字6763個。 GB 2312-80 把收錄的漢字分成兩級。第一級漢字是常用漢字,計3755個,置於16~55區,按漢語拼音字母/筆形順序排列;第二級漢字是次常用漢字,計3008個,置於56~87區,按部首/筆畫順序排列。字音以普通話審音委員會發表的《普通話異讀詞三次審音總表初稿》(1963年出版)為準,字形以中華人民共和國文化部、中國文字改革委員會公布的《印刷通用漢字字形標》(1964年出版)為準。


http://einverne.github.io/2015/05/15/chinese-encoding.html


推薦閱讀:

為什麼有時候"元"(yuan)字會變成"刀"(dao)字?
顏文字使用的都是哪些編碼?裡面都有哪些國家的文字?

TAG:字元編碼 |