GBKは、
中華人民共和国で使用される
簡体字用の
文字コードである
GB 2312を拡張したものです。正式名称は「汉字内码扩展规范」といい、
1995年12月に国家技術監督局標準化司と電子工業部科技与質量監督司が発布した技術規範指導性文件(文書)であり、正式な規格ではありません。
GBは国家規格(Guójiā Biāozhǔn, 国家标准)を、Kは拡張(Kuòzhǎn, 扩展)を表します。GBKは、旧規格である
GB 2312に、繁体字や1981年に
GB 2312が制定された後に簡略化された漢字などを追加しています。GBKの登場によって、
国務院総理を務めた朱鎔基(
中国語: 朱镕基)の名前にある「镕」といった、それまで表現できなかった一部の人名も表現できるようになりました。
歴史
1993年には、
中国大陸、
台湾、日本、韓国で使用される20,902字を含む
Unicode 1.1規格が公開されました。これを受けて、中国は
Unicode 1.1と等価な国家規格であるGB 13000.1-93を公開しました。
GBKの文字集合は、1993年に
GB 2312-80の拡張として定義されましたが、
GB 2312で未使用のコードポイントを利用してGB 13000.1-93の文字も含んでいました。このため、GBKは
GB 2312に対して上位互換性があります。
マイクロソフトは、GBKをWindows 95でコードページ936として定義しました。GBKが正式な規格になったことはありませんが、Windows 95が広く普及したことで、GBKは事実上の標準となりました。GBKは、
Unicode 1.1およびGB 13000.1-93で定義されているすべての漢字を含んでいましたが、それらとは異なる符号表を使用していました。GBKの基本的な役割は、
GB 2312-80とGB 13000.1-93の間のギャップを埋めることでした。
2000年には、
GB 18030-2000規格が公開され、GBKに取って代わりましたが、互換性は維持されています。
GB 18030は、定義されている漢字の数を増やし、4バイト文字空間の実装によって使用可能な文字数を拡張しました。
符号化方式
文字は1バイトまたは2バイトで符号化されます。00–7Fの範囲にあるバイトは1バイトで、
ASCIIと同じ意味を持ちます。具体的には、96の文字と32の制御符号がこの範囲に含まれます。
上位ビットが立てられたバイトは、2バイト文字の第1バイトであることを示します。大まかに言うと、第1バイトの範囲は81–FE(80とFFは含まず)、第2バイトは一部の領域では40–FE、他の領域では80–FEにあります。
より具体的には、以下の範囲のバイトが定義されています。
1バイト: 0x00 - 0x7F (ASCII)
2バイト: 1バイト目 0x81 - 0xFE, 2バイト目 0x40 - 0xFE (一部の領域は 0x80 - 0xFE)
2バイト符号で表現可能な64Kの空間は、以下のように割り当てられています。緑と黄色の領域がGBKに割り当てられたコードポイントで、赤がユーザー定義文字用です。色が付いていない領域は無効なバイトの組み合わせです。
GBK/1およびGBK/2として示された領域は、
GB 2312-80を標準的な方法で符号化したものです。
GB 2312(より正確にはEUC-CNによる符号化)は、
ISO/IEC 2022|ISO_IEC 2022でGRに呼び出された他の94²文字集合と同様に、A1–FEの範囲からバイトのペアを取得します。これは図の右下の区画に相当します。しかし、
GB 2312はAA–AFとF8–FEの区画は使用せず、コードポイントを割り当てていません。
GBKはこの領域に拡張を追加しました。この違いはユーザー定義領域で埋められています。
さらに重要なことに、GBKはバイトの範囲を拡張しました。
ISO/IEC 2022|ISO_IEC 2022のGR領域に収容できる文字数には94² = 8,836字の制限があります。
ISO/IEC 2022|ISO_IEC 2022のモデル(
図形文字用と制御文字用に厳格な範囲を与える)を放棄し、下位バイトが1バイト文字であり、上位バイトのペアが文字を示すという機能を維持することにより、潜在的に128² = 16,384の符号位置を使用できるようになりました。GBKはその一部を採用し、範囲をA1–FE(バイトごとに94の選択肢)から、第1バイトは81–FE(126の選択肢)へ、第2バイトは40–FE(191の選択肢)へと拡張しました。
マイクロソフトのコードページ936は、通常GBKであると考えられています。GBKと同じ範囲のバイトを使用し、割り当てを比較しても同じように見えます。コードページ936は、GBKに収録されている21,886字のうち95字を
Unicodeの私用領域に割り当てています。これらはGBKが制定された時点で
Unicodeに収録されていなかった文字です。
GBKの後継である
GB 18030-2000は、第2バイトとして使用可能な残りの範囲を使用して、さらに利用可能なコードポイントの数を拡張していますが、GBKをサブセットとして保持しています。
脚注
外部リンク
MicrosoftのGBK用の参照ページ
GBKからUnicodeへのマッピング 注意: Microsoft typographyの表に含まれていた私用領域との対応は含まれていません。
GBK符号表 注意: これは使用可能な符号空間を、2か所を除きすべて示しているため合計は32,256グリフになり(32,352と、図に示されていない暗黙の1バイトASCII符号)、23,940や21,886より多い。
GBKとGB 2312から
GB 18030への進化 (2012年8月25日時点のアーカイブ)
*
GBK(5) HP社のmanページ に、文字範囲に関する優れた説明があります。