GB 18030は、
中華人民共和国が定めた
文字コードの国家規格です。正式名称は「GB 18030-2005 情報技術 中国語符号化文字集合」で、以前は「GB 18030-2000 情報交換用漢字符号化文字集合基本集合の拡張」と呼ばれていました。IANA登録名はGB18030です。
概要
GB 18030は、それまで正式な規格ではなかった拡張文字セット
GBKに代わる上位互換の
文字コードです。漢字に加え、少数民族の言語で使用される文字もサポートしています。漢字は、中国で使われる
簡体字だけでなく、
Unicodeに含まれる
繁体字、日本語や韓国語で使われる漢字も含まれます。
初版は
2000年3月17日に、現行版は
2005年11月8日に発布され、
2006年5月1日から施行されました。中国国内で販売されるすべてのソフトウェア製品は、GB 18030をサポートすることが義務付けられています。
GB 18030は、従来の
文字コードと互換性を保ちながら、
Unicodeのすべての符号位置を符号化できる
Unicode変換形式(UTF)と見なすことができます。これは、GB 18030が
UTF-8の中国版のようなもので、
UTF-8と同様に
ASCIIの上位互換であり、
Unicodeのすべての範囲を表現できることを意味します。さらに、GB 18030は
GB 2312の上位互換であり、
GBKとの互換性も維持しています。ただし、
ユーロ記号の扱いは異なり、
GBKでは1バイト符号の0x80が割り当てられていたのに対し、GB 18030では2バイト符号のA2 E3が割り当てられています。
マッピングデータの一部は変換表に基づいていますが、残りは計算によって求められます。GB 18030は、基となった古い規格の課題も引き継いでおり、特に
ASCII文字を安全に検索するには、特別なコーディングが必要です。
多くの主要なコンピュータ企業は、
Unicodeを基本形式として採用していましたが、初期の
Unicode 1.0では
基本多言語面(BMP)の符号位置しかサポートしていませんでした。BMPは65,536の符号位置しかなく、16ビットでUCS-2として符号化されることがありました。しかし、ソフトウェアの
Unicodeサポートが重要になるにつれて、中国はBMP外の符号位置のサポートを義務付けました。これにより、ソフトウェアは可変幅形式のデータ(
UTF-8や
UTF-16)を処理するか、より大きな固定幅形式(UCS-4や
UTF-32)に移行する必要が生じました。
マイクロソフトはWindows 2000でUCS-2から
UTF-16への変更を行いました。
技術的な詳細
4バイトコードの構造は、それぞれ2バイトの単位2つから構成されていると考えることができます。各単位は
GBKの2バイト文字に似ていますが、第2バイトの値の範囲は0x30から0x39(
ASCIIコードの10進数)です。第1バイトは0x81から0xFEの範囲です。これにより、
GBKで安全な文字列検索ルーチンがGB 18030でも比較的安全に使用できる可能性が高まります。これは、基本的なバイト指向の検索ルーチンがEUCでも比較的安全であることと似ています。
この仕組みにより、可能な4バイトシーケンスで合計1,587,600の符号位置が得られ、
Unicodeの1,112,046の符号位置を十分にカバーできます。ただし、4バイトシーケンスを対応する符号位置に変換するための単純な規則は存在しません。代わりに、コードは1バイトや2バイト符号に割り当てられていない
Unicode符号位置に順番に割り当てられます。この際、先頭バイトは上位桁を含み、最終バイトは下位桁を含みます。
例として、以下のような符号化が行われます。
U+00DE (Þ) → 81 30 89 37
U+00DF (ß) → 81 30 89 38
U+00E0 (à) → A8 A4
U+00E1 (á) → A8 A2
U+00E2 (â) → 81 30 89 39
U+00E3 (ã) → 81 30 8A 30
GB 18030は
GBKの上位互換とされていますが、
Unicodeへの割り当ての観点からは必ずしも完全な互換性があるわけではありません。
GBKに収録された文字のうち95文字は、制定当時
Unicodeに収録されていなかったため、一時的に私用領域に割り当てられました。そのうち
Unicode 3.0までに収録された80文字は、GB 18030-2000で
Unicodeに正式に収録された際の符号位置に変更されました。GB 18030-2005では、さらに1文字の割り当てが4バイト符号と入れ替えられました。残りの14文字も
Unicode 4.1までにすべて収録されましたが、GB 18030での割り当ては変更されていません。
関連項目
GBK
GBコード
GB規格
CJKV
中国の文字コード
Unicode符号化方式の比較