GBK

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

GBK は、中華人民共和国で使われている簡体字用の文字コード GB 2312 の拡張である。

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 に対して上位互換である。

Microsoft は 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 バイトで符号化される。007Fの範囲にあるバイトは 1 バイトで、ASCII にあるものと同じ意味を持つ。厳密に言うと、96 の文字と 32 の制御符号がこの範囲にある。

上位ビットが立てられたバイトは 2 バイト文字の第 1 バイトであることを示す。おおざっぱに言うと、第 1 バイトの範囲は81FEであり(すなわち、80FFは含まず)、第 2 バイトは一部の領域は40FEに、他の領域が80FEにある。

より具体的には、以下の範囲のバイトが定義されている:

GBK の文字符号化範囲
範囲 第 1 バイト 第 2 バイト コードポイント 文字
水準 GBK/1 A1A9 A1FE 846 717
水準 GBK/2 B0F7 A1FE 6,768 6,763
水準 GBK/3 81A0 40FE (7Fを除く) 6,080 6,080
水準 GBK/4 AAFE 40A0 (7Fを除く) 8,160 8,160
水準 GBK/5 A8A9 40A0 (7Fを除く) 192 166
利用者定義 AAAF A1FE 564
利用者定義 F8FE A1FE 658
利用者定義 A1A7 40A0 (7Fを除く) 672
合計: 23,940 21,886

2 バイト符号で表現可能な 64 K 空間すべてを以下の図に示す。緑と黄色の領域が GBK に割り当てられたコードポイントであり、赤が利用者定義文字用である。色付きでない領域は不正なバイトの組み合わせである。

GBK encoding ja.svg

他の文字コードとの関係[編集]

前節に GBK/1 および GBK/2 として示された領域は、単に GB 2312-80 を通常の方法で符号化したものである。GB 2312 (より正確にはその EUC-CN による符号化)は、ISO/IEC 2022 で GR に呼び出された他のあらゆる 94² 文字集合と同様、A1FE の範囲からバイトの対を取る。これは上図において右下の区画に相当する。しかし、GB 2312 はAAAFF8FE にある区には手を付けず、いかなるコードポイントも割り当てていない。

GBK はこの領域に拡張を追加した。この二者の違う部分は利用者定義領域によって埋められている。

より重要なこととして、GBK はバイトの範囲を拡張した。ISO/IEC 2022 の GR 領域に持てる文字の数には 94² = 8,836 字の制限がある。図形文字用と制御文字用に厳格な範囲を与えるという ISO/IEC 2022 のモデルは放棄するが、下位バイトは 1 バイト文字であり上位バイトの対が文字を示すという機能を残すことにより、潜在的に 128² = 16,384 の符号位置を使えるようになった。GBK はその一部を採用し、範囲をA1FE (バイトごとに94の選択肢がある)から、第 1 バイトは 81FE (126 の選択肢)へ、第 2 バイトは 40FE (191 の選択肢) へ拡張した。

マイクロソフトのコードページ 936 は通常 GBK であると考えられている。GBK と同じ範囲のバイトを使い、比較してみても同じ割り当てがなされているように見える。コードページ 936 は、GBK に収録されている 21,886 字のうち 95 字を Unicode の私用領域に割り当てている[1][2]。これらは GBK が制定された時点で Unicode に収録されていなかった文字である。

GBK の後継である GB 18030-2000 は、第 2 バイトとして使用可能な残りの範囲を使って、さらに使用可能なコードポイントの数を拡張しているが、GBK を部分集合として残している。

脚注[編集]

  1. ^ use of private area in GBK converter”. 2002年8月28日時点のオリジナル[リンク切れ]よりアーカイブ。2007年12月25日閲覧。
  2. ^ PRC GBK (XGB)”. 2000年8月16日時点のオリジナル[リンク切れ]よりアーカイブ。2008年12月7日閲覧。 - Microsoft typographyCharacter sets and codepagesにかつて存在した GBK と Unicode の間の変換表。

外部リンク[編集]