信息交換用漢字編碼字符集

信息交換用漢字編碼字符集

《信息交換用漢字編碼字符集》是由中國國家標準總局1980年發布,1981年5月1日開始實施的一套國家標準,標準號是GB 2312—1980。

G徠B2312編碼適用於漢字處理、漢字通信等系統之間的信息交換,通行於中國大陸;新加坡等地也採用此編碼。中國大陸幾乎所有的中文系統和國際化的軟體都支持GB 2312。

基本集共收入漢字6763個和非漢字圖形字元682個。整個字符集分成94個區,每區有94個位。每個區位上只有一個字元,因此可用所在的區和位來對漢字進行編碼,稱為區位碼。

把換算成十六進位的區位碼加上2020H,就得到國標碼。國標碼加上8080H,就得到常用的計算機機內碼。1995年又頒布了《漢字編碼擴展規範》(GBK)。GBK與GB 2312—1980國家標準所對應的內碼標準兼容,同時在字彙一級支持ISO/IEC10646—1和GB 13000—1的全部中、日、韓(CJK)漢字,共計20902字。

簡介


信息交換用漢字編碼字符集和漢字輸入編碼之間的關係是,根據不同的漢字輸入方法,通過必要的設備向計算機輸入漢字的編碼,計算機接收之後,先轉換成信息交換用漢字編碼字元,這時計算機就可以識別並進行處理;漢字輸出是先把機內碼轉成漢字編碼,再發送到輸出設備。
國家標準《信息交換用漢字編碼字符集·基本集》已於1981年5月發布實施。《基本集》規定了漢字信息交換用的基本圖形字元及其二進位編碼,收漢字6763個。它適用於一般漢字處理、漢字通信等系統之間的信息交換。隨著我國漢字信息處理技術的發展,計算機的應用範圍不斷擴大,使用漢字字數較多的部門迫切需要在《基本集》的基礎上繼續制定信息交換用漢字編碼字符集各輔助集的國家標準。

收錄


GB 2312標準共收錄6763個漢字,其中一級漢字3755個,二級漢字3008個;同時,GB 2312收錄了包括拉丁字母、希臘字母、日文平假名及片假名字母、俄語西里爾字母在內的682個全形字元。
GB 2312的出現,基本滿足了漢字的計算機處理需要,它所收錄的漢字已經覆蓋中國大陸99.75%的使用頻率。
對於人名、古漢語等方面出現的罕用字,GB 2312不能處理,這導致了後來GBK及GB 18030漢字字符集的出現。

分區表示


GB 2312中對所收漢字進行了“分區”處理,每區含有94個漢字/符號。這種表示方式也稱為區位碼。
01-09區為特殊符號。
16-55區為一級漢字,按拼音排序。
56-87區為二級漢字,按部首/筆畫排序。
10-15區及88-94區則未有編碼。
徠舉例來說,“啊”字是GB2312之中的第一個漢字,它的區位碼就是1601。

位元組結構


在使用GB2312的程序中,通常採用EUC儲存方法,以便兼容於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)。

兩種不同實現


有兩種不同的GB2312實現,在它們之間存在少量的差別,其中至少有一個是錯誤的。
位元組序實現A實現B
A1A4U+00B7 MIDDLE DOTU+30FB KATAKANA MIDDLE DOT
A1AAU+2014 EM DASHU+2015 HORIZONTAL BAR
實現A與GBK/GB18030兼容,實現B則不兼容。
在2015年,微軟.Net Framework在使用實現A。 iconv-1.14, php-5.6, ActivePerl-5.20, Java 1.7, Python 3.4在使用實現B。

編碼表


GB2312簡體中文編碼表
code +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
A1A0 、。 · ˉ ˇ ¨ 〃 々 — ~ ‖ … ‘ ’
A1B0 “ ” 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】
A1C0 ± × ÷ ∶ ∧ ∨ ∑ ∏ ∪ ∩ ∈ ∷ √ ⊥ ∥ ∠
A1D0 ⌒ ⊙ ∫ ∮ ≡ ≌ ≈ ∽ ∝ ≠ ≮ ≯ ≤ ≥ ∞ ∵
A1E0 ∴ ♂ ♀ ° ′ ″ ℃ $ ¤ ¢ £ ‰ § № ☆ ★
A1F0 ○ ● ◎ ◇ ◆ □ ■ △ ▲ ※ → ← ↑ ↓ 〓
code +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
A2A0 Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ ? ? ? ? ?
A2B0 ? ⒈ ⒉ ⒊ ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ ⒓ ⒔ ⒕ ⒖
A2C0 ⒗ ⒘ ⒙ ⒚ ⒛ ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾
A2D0 ⑿ ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇ ① ② ③ ④ ⑤ ⑥ ⑦
A2E0 ⑧ ⑨ ⑩ ? ? 一 二 三 四 五 六 七 八 九 十 ?
A2F0 ? Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻ ? ?
code +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
A3A0 ! " # ¥ % & ' ( ) * + , - . /
A3C0 @ A B C D E F G H I J K L M N O
A3D0 P Q R S T U V W X Y Z [ \ ] ^ _
A3E0 ` a b c d e f g h i j k l m n o
A3F0 p q r s t u v w x y z { | }
……