GB 18030
GB 18030はGBKの上位互換ということになっているが、Unicodeへの割り当てという観点からは必ずしも互換性がない。
GBKに収録された文字のうち95文字は制定時点でUnicodeに収録されていなかったため、一時的に私用領域へ割り当てられた。うちUnicode 3.0までに収録された80文字は、GB 18030-2000では正式にUnicodeへ収録されたときの符号位置へ割り当てを変更されている。GB18030-2005ではさらに1文字の割り当てが4バイト符号と入れ替えられた。残り14文字もUnicode 4.1までにすべて収録されたが、GB 18030での割り当ては変更されていない。
4バイトコードの枠組みは、それぞれのサイズが2バイトの単位2つからなると考えられる。各単位はGBKの2バイト文字に似た形式だが、第2バイトの値の範囲は0x30-0x39(10進数のASCIIコード)である。第1バイトは以前と同様、0x81から0xFEの範囲である。これはGBKで安全な文字列検索ルーチンはGB 18030でも比較的安全な可能性が高いことを意味する。これは基本的なバイト指向の検索ルーチンがEUCでも比較的安全なことと似ている。
これにより、可能な4バイトシーケンスすべてで合計 1,587,600 (126 × 10 × 126 × 10) の符号位置が与えられ、Unicodeの 1,112,046 の符号位置を容易にカバーできる。
さらに複雑なことに4バイトシーケンスを対応する符号位置との間で変換するための単純な規則は存在しない。代わりに、コードは1バイト符号や2バイト符号に割り当てられていないUnicode符号位置にのみ順番に割り当てられる (先頭バイトが上位桁を含み、最終バイトが下位桁を含む)。
例