GB2312、BIG5、GBK、GB18030簡介

GB2312、GBK、GB18030、BIG5這些是ANSI範疇下漢字的編碼實現,接下來一一介紹。

GB2312

  • 簡介:

    GB2312編碼適用於漢字處理、漢字通信等系統之間的信息交換,通行於中國大陸;新加坡等地也採用此編碼。

  • 分區表示:

    GB 2312中對所收漢字進行了“分區”處理,每區含有94個漢字/符號。這種表示方式也稱爲區位碼,如下( 舉例來說,“啊”字是GB2312之中的第一個漢字,它的區位碼就是1601,即16區第1個):

    • 01-09區爲特殊符號。
    • 16-55區爲一級漢字,按拼音排序。
    • 56-87區爲二級漢字,按部首/筆畫排序。
    • 10-15區及88-94區則未有編碼。
  • 存儲實現:

    通常採用EUC(Extended Unix Code)儲存方法,以便兼容於ASCII。瀏覽器編碼表上的“GB2312”,通常都是指“EUC-CN”表示法。每個漢字及符號以兩個字節來表示。第一個字節稱爲“高位字節”(也稱“區字節)”,第二個字節稱爲“低位字節”(也稱“位字節”)。“高位字節”使用了0xA1-0xF7(把01-87區的區號加上0xA0),“低位字節”使用了0xA1-0xFE(把01-94加上 0xA0)。 由於一級漢字從16區起始,漢字區的“高位字節”的範圍是0xB0-0xF7,“低位字節”的範圍是0xA1-0xFE,佔用的碼位是 72*94=6768。其中有5個空位是D7FA-D7FE。例如“啊”字在大多數程序中,會以兩個字節,0xB0(第一個字節) 0xA1(第二個字節)儲存。區位碼=區字節+位字節(與區位碼對比:0xB0=0xA0+16,0xA1=0xA0+1)。注:因爲都加了0xA0(字節最高位必爲1),所以可以據此判斷是ASCII字符(一個字節表示),還是漢字(兩字節表示)

  • 測試

#include <iostream>
using namespace std;

int main()
{
    char szAnsi[] = "啊";
    for( int i = 0; i < sizeof(szAnsi); ++i )
    {
        cout << std::hex << (int)(unsigned char)(szAnsi[i]) << endl;
    }
    return 0;
}

輸出結果(啊的編碼正好是0XB0A1):

b0
a1
0

當然也可以通過記事本寫入一個啊字,然後保存爲ANSI格式,再使用Binary Viewer查看二進制數據,也可得出0xB0A1的結果。

GBK

  • 簡介:
    GBK編碼,是在GB2312-80標準基礎上的內碼擴展規範,使用了雙字節編碼方案,其編碼範圍從8140至FEFE(剔除xx7F),共23940個碼位,共收錄了21003個漢字,完全兼容GB2312-80標準,支持國際標準ISO/IEC10646-1和國家標準GB13000-1中的全部中日韓漢字,幷包含了BIG5編碼中的所有漢字。GBK 向下與 GB 2312 編碼兼容,向上支持 ISO 10646.1國際標準,是前者向後者過渡過程中的一個承上啓下的產物。ISO 10646 是國際標準化組織 ISO 公佈的一個編碼標準,即 Universal Multilpe-Octet Coded Character Set(簡稱UCS),大陸譯爲《通用多八位編碼字符集》,臺灣譯爲《廣用多八位元編碼字元集》,它與 Unicode 組織的 Unicode 編碼完全兼容。ISO 10646.1 是該標準的第一部分《體系結構與基本多文種平面》。我國 1993 年以 GB 13000.1 國家標準的形式予以認可(即 GB 13000.1 等同於 ISO 10646.1)

GB1830

  • 簡介
    2000年的GB18030是取代GBK1.0的正式國家標準。該標準收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民族文字。GB18030 是最新的漢字編碼字符集國家標準, 向下兼容 GBK 和 GB2312 標準。

BIG5

  • 簡介
    Big5,又稱爲大五碼或五大碼,是使用繁體中文(正體中文)社區中最常用的電腦漢字字符集標準,共收錄13,060個漢字。

總結

以上是對漢字幾種編碼的的簡要陳列說明,發展歷史線路可總結爲:
  • GB2312表示簡體中文,基本上能滿足計算機對簡體中文的處理需求,BIG5是表示繁體中文的編碼。
  • 在GB2312的基礎上加入了繁體中文等一些其它的罕見字符,就出現了GBK。
  • 在GBK的基礎上加入少數民族的字符及其它一些字符,就出現了GB18030。

引用參考:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章