簡介
信息交換用漢字編碼字元集和
漢字輸入編碼之間的關係是,根據不同的漢字輸入方法,通過必要的設備向計算機輸入漢字的編碼,計算機接收之後,先轉換成信息交換用漢字編碼字元,這時計算機就可以識別並進行處理;漢字輸出是先把機內碼轉成漢字編碼,再傳送到
輸出設備。
國家標準《信息交換用漢字編碼字元集·基本集》已於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實現
有兩種不同的GB2312實現,在它們之間存在少量的差別,其中至少有一個是錯誤的。
位元組序 | 實現A | 實現B |
A1A4 | U+00B7 MIDDLE DOT | U+30FB KATAKANA MIDDLE DOT |
A1AA | U+2014 EM DASH | U+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 { | }
……