中国の「漢字表」
漢字簡化方案
1956年に国務院から発布された544字の漢字表と54字の偏旁表です。
544字中515字(のちに517字に増えた)を、どのように簡化するのかが述べられています。
また54字の偏旁表により、これらの偏旁を含む全ての漢字を簡化することが示されています。
第一批異体字整理表
1955年に文化部と文字改革委員会が合同で発布した1865字の漢字表です。
このうち1055字を廃止して、残りの810字に書き換えることが示されています。
実際には「漢字簡化方案」と前後して公布され、方案を補間する形になっています。
簡化字総表
1964年に文字改革委員会が発布した2264字の漢字表です。
「漢字簡化方案」ではわかりにくかった偏旁の簡化用法を細かく定め、簡化の適用範囲を拡げています。
なお、1986年に国家語言文字工作委員会が、同じ表をもう一度公布しています。
印刷通用漢字字形表
1965年に文化部と文字改革委員会が合同で発布した6196字の漢字表です。
印刷物に用いるべき字体が細かく定められ、活字および写植フォントの規範となっています。
GB 2312-80
1980年に国家標準局が発布した7445字の文字表で、俗に「GB漢字」と呼ばれています。
全ての文字に「区位編号」(区点番号と同じ)が振られており、16〜55区に「第一級」漢字3755字、56〜87区に「第二級」漢字3008字、01〜09区に非漢字682字が収められています。
「第一級」漢字は音順に、「第二級」漢字は部首順に並んでいます。
漢字のうち6196字の字形は「印刷通用漢字字形表」に依っており、当然全てのコンピュータで採用されています。
残り567字の漢字の中に簡化字でないものが混ざっていたため、1986年にバグフィクスされました。
一覧表はここにあります。
標準電碼本(修訂本)
1981年に郵電部が発布した7293字の文字表で、俗に「電報碼」と呼ばれています。
全ての文字に4桁の10進数が振られており、0001〜9694に漢字7079字、9701〜9999に記号類214字が収められています。
電報を打つ際に用いられるコードです。
一覧表はここにあります。
GB 7589-87
1987年に国家標準局が発布した7237字の漢字表で、「第二輔助集」と呼ばれています。
区位編号が用いられており、16〜92区に部首順に簡化字7237字が収められています。
GB 2312-80と重なっている漢字はありません。
GB 7590-87
1987年に国家標準局が発布した7039字の漢字表で、「第四輔助集」と呼ばれています。
区位編号が用いられており、16〜90区に部首順に簡化字7039字が収められています。
GB 2312-80およびGB 7589-87と重なっている漢字はありません。
現代漢語常用字表
1988年に国家語言文字工作委員会と国家教育委員会が合同で発布した3500字の漢字表です。
常用字2500字と次常用字1000字に分かれていて、語文教育や基礎漢字教育の必要に応えるべく、日常生活によく使われる漢字を収めています。
GB 8565.2-88表A4
1988年に国家標準局が発布した705字の文字表です。
GB 2312-80の空き領域に追加する形になっており、90〜94区および13区にGB 7589-87から集められた漢字520字、14区にGB 7590-87から集められた漢字92字、15区にその他の漢字24字と非漢字69字が収められています。
なお、ITU-T Recommendation T.101 Table C.16は、GB 2312-80にGB 8565.2-88表A4を加え、さらに293字追加したものです。
ITU-T Recommendation T.101 Table C.16の一覧表はここにあります。
現代漢語通用字表
1989年に国家語言文字工作委員会と国家新聞出版署が合同で発布した7000字の漢字表です。
「現代漢語常用字表」の3500字を全て含んでおり、「印刷通用漢字字形表」に代わるものとして出されました。
現代漢字の規範化を目しており、情報処理・機械処理・印刷出版事業の発展に応えるべく、通常必要な漢字を収めています。
一覧表はここにあります。
GB 12052-89
1989年に国家技術監督局(国家標準局から改称)が発布した5979字の文字表で、俗に「ハングルGB」と呼ばれています。
区位編号が用いられており、16〜37区には現代ハングル常用字2068字、38〜52区には現代ハングル次常用字1356字、53〜72区には非現代ハングル1873字、01〜09区にはGB 2312-80とほぼ同じ非漢字682字が収められています。
非現代ハングルには吏読漢字94字が含まれています。
GB/T 12345-90
1990年に国家技術監督局が発布した7583字の文字表で、俗に「第一輔助集」と呼ばれています。
区位編号が用いられており、16〜55区に「第一級」漢字3755字、56〜87区に「第二級」漢字3008字、88〜89区に「増補」漢字103字、01〜09区に非漢字717字が収められています。
「第一級」漢字と「第二級」漢字ではGB 2312-80と同じ区位に繁体字が対応しており、「増補」漢字は他の繁体字と同一の簡化字を共有する繁体字となっています。
GB/T 13131-91
1991年に国家技術監督局が発布した7237字の漢字表で、「第三輔助集」と呼ばれています。
区位編号が用いられており、16〜92区にGB 7589-87と対応する繁体字7237字が収められています。
GB/T 13132-91
1991年に国家技術監督局が発布した7039字の漢字表で、「第五輔助集」と呼ばれています。
区位編号が用いられており、16〜90区にGB 7590-87と対応する繁体字7039字が収められています。
GB 13000.1-93
1993年に国家技術監督局が発布した34168字の文字表で、
国際規格ISO/IEC 10646-1:1993の中国語訳です。
現時点では全ての文字に16進数4桁のコードが振られており、4E00〜9FA5に漢字20902字が収められています。
ただしここでの漢字は、日本のJIS規格、中国のGB規格、台湾のCNS規格、韓国のKS規格などから集めてきたものを、一度ごちゃまぜにしてまた並べ直したものであるため、色々な点で矛盾が起こっています。
また、これらの規格には含まれていないはずの漢字も、数多く紛れ込んでしまっています。
漢字内碼拡展規範
1995年に全国信息技術標準化技術委員会が発布した21886字の文字表で「GBK」と呼ばれています。
全ての文字に16進数4桁のコードが振られており、8140〜A0FEおよびB0A1〜FEA0に漢字21003字、A1A1〜A9EFに非漢字883字が収められています。
ただしここでの漢字はGB 13000.1-93の漢字20902字に101字追加して、CN-GBと上位互換性を保つように並べかえたものです。
中国の「漢字コード」
文字を表すバイト列中に、16進数で「0E」というバイトが来たらそれ以降は漢字、「0F」というバイトが来たらそれ以降はASCIIとみなす方法です。
「漢字」にGB 2312-80を使う場合は「1B 24 29 41」、ITU-T Recommendation T.101 Table C.16を使う場合は「1B 24 29 45」を「0E」以前に入れておく必要があります。
「漢字」については、区位編号の「区」と「位」それぞれに32を加えて、2バイトの文字コードとします。
例えば「10月18日」という文字列は、GB 2312-80を使う場合は「1B 24 29 41 31 30 0E 54 42 0F 31 38 0E 48 55 0F」となります。
文字を表すバイト列中に、16進数で「7E 7B」というバイト列が来たらそれ以降はGB 2312-80、「7E 7D」というバイト列が来たらそれ以降はASCIIとみなす方法です。
GB 2312-80の文字については、区位編号の「区」と「位」それぞれに32を加えて、2バイトの文字コードとします。
例えば「10月18日」という文字列は、「31 30 7E 7B 54 42 7E 7D 31 38 7E 7B 48 55 7E 7D」となります。
CN-GB (EUC-CNあるいは8bit GB)
GB 2312-80の区位編号の「区」と「位」それぞれに160を加えて、2バイトの文字コードとする方法です。
この方法だと「10月18日」という文字列は「31 30 D4 C2 31 38 C8 D5」となります。
GBK
漢字内碼拡展規範の16進数4桁のコードを、そのまま2バイトの文字コードとする方法です。
この方法だと「10月18日」という文字列は「31 30 D4 C2 31 38 C8 D5」となります。
CN-GBと上位互換性があります。
UCS-2
GB 13000.1-93の16進数4桁コードを、そのまま2バイトの文字コードとする方法です。
通常は最初に「FEFF」を追加して、UCS-2であることをはっきりさせると同時に、バイト順を確定します。
この方法だと「10月18日」という文字列は「FEFF 0031 0030 6708 0031 0038 65E5」となることから、上位バイトが先の場合は「FE FF 00 31 00 30 67 08 00 31 00 38 65 E5」、下位バイトが先の場合は「FF FE 31 00 30 00 08 67 31 00 38 00 E5 65」となります。
GB 13000.1-93の16進数4桁コードに以下の演算を施して、1〜3バイトの文字コードとする方法です。
- 0000〜007Fの場合
下2桁をそのまま1バイトのコードとします。
- 0080〜07FFの場合
元のコードを2進数に変換した値を00000xxxxxyyyyyyとする時、2進数で110xxxxxを1バイト目とし、10yyyyyyを2バイト目とします。
- 0800〜FFFFの場合
元のコードを2進数に変換した値をxxxxyyyyyyzzzzzzとする時、2進数で1110xxxxを1バイト目とし、10yyyyyyを2バイト目とし、10zzzzzzを3バイト目とします。
この方法だと「10月18日」という文字列は「31 30 E6 9C 88 31 38 E6 97 A5」となります。