| MIME / IANA | GB_2312-80(GB2312通常のEUC形式の場合) |
|---|---|
| 別名 | iso-ir-58、中国語、csGB2312、csISO58GB231280 |
| 言語 | 簡体字中国語、英語 部分的にサポート: 繁体字中国語、ロシア語、ブルガリア語、ギリシャ語、日本語、イタリア語、アイルランド語、マオリ語 |
| 標準 | GB/T 2312-1980 |
| 分類 | ISO-2022互換DBCS、CJKエンコード |
| 拡張機能 | ISO-IR-165 |
| エンコード形式 |
|
| 先行 | 中国の電信コード |
| 後継者 | GBK、GB 18030 |
| その他の関連エンコーディング | JIS X 0208、KS X 1001 |
GB/T 2312-1980 は、中華人民共和国の重要な公式文字セットであり、簡体字中国語の文字に使用されます。GB2312は、 EUC-CNの登録インターネット名であり、通常のエンコード形式です。GBはGuobiao 標準(国家标標)を指し、 T接尾辞 (推荐; tuījiàn ; '推奨') は非強制標準を示します。 [1]
GB/T 2312-1980は、もともとGB 2312-1980という強制的な国家規格でした。しかし、 2017年の中華人民共和国国家標準公報により、GB 2312は強制ではなくなり、その標準コードはGB/T 2312-1980に変更されました。[2] GB/T 2312-1980は、追加文字を含むGBKとGB 18030に置き換えられましたが、GB/T 2312はそれらのエンコーディングのサブセットとして広く使用され続けています。
2022年9月現在[アップデート]、GB2312は中国とその周辺地域から提供されるエンコードの中でUTF-8に次いで2番目に人気があり、ページを提供するウェブサーバーの5.5%がこれを宣言しています。[3]世界的に見ると、GB2312はウェブページ全体の0.1%で宣言されています。[4]ただし、ラベルのSafariとEdgeを除くすべての主要ウェブブラウザは、GB2312でマークされた文書を、スーパーセットのGBKエンコードでマークされているかのようにデコードしますGB_2312。[5]
類似の文字セットとしてGB/T 12345 情報交換用漢字表意文字コード補足セットがあり、これはGB/T 2312の簡体字をqūwèiコードに置き換えて繁体字と62個の追加補助文字を補足するものである。[6] [7] GBエンコードされたフォントは、多くの場合、1つはGB/T 2312(簡体字)文字セット、もう1つはGB/T 12345(繁体字)文字セットのペアで提供される。 GB/T 2312 を補足する GB 補足エンコード セットが他にも存在します。これには、GB/T 7589情報交換用中国語表意文字コード セット - 第 2 補足セットや、同じquwèiエンコード形式 (後に ISO-2022-CN で使用)で追加の [異体字|異体文字] を提供するGB/T 7590情報交換用中国語表意文字コード セット - 第 4 補足セットが含まれますが、GB/T 2312 でエンコードされた文字とは関係がありません。
行内の文字範囲
GB/T 2312は現代中国語のテキスト使用法の99.99%以上をカバーしていますが、[8]歴史的テキストと多くの名前は対象外のままです。古いGB 2312規格には、6,763文字(2つのレベル:1つは読み順、2つ目は部首と画数順)と、記号と句読点、日本語の仮名、ギリシャ語とキリル文字、注音、および声調記号付きの2バイトのピンイン文字が含まれています。後のバージョンGB/T 2312-1980には、7,445文字が含まれています。
GB/T 2312 の文字は 94×94 のグリッド(ISO 2022と同じ)に配置され、各文字の 2 バイトのコード ポイントはqūwèi(区位)形式で表現されます。これは、行(区; qū)と行内の文字の位置(セル;位; wèi )を指定します。(この構造は、他のISO-2022 ベースの国家CJK文字セット標準で使用されているものと同じです。区点と比較してください。)たとえば、文字「外」(意味:外国)は行 45 の位置 66 にあり、[9]したがって、そのqūwèiコードは 45-66 です。
行 (1 から 94 までの番号) には、次の文字が含まれます。
- 01~09、句読点やその他の特殊文字、ひらがな、カタカナ、ギリシャ文字、キリル文字、ピンイン、ボポモフォを含む
- 16~55、ピンインに従って配列された中国語の第一レベルの文字。(3755文字)。
- 56~87、部首と画数に従って配列された第2レベルの漢字。(3008文字)。
行 10 ~ 15 および 88 ~ 94 は未割り当てです。
GB/T 2312-1980 には、682 の記号と 6763 の漢字が含まれています。
GB/T 2312 のエンコーディング
EUC-CN
EUC-CN は、 GB/T 2312 を扱うプログラムで文字エンコーディング(つまり外部ストレージ用)としてよく使用され、 ASCIIとの互換性が維持されます。ASCIIにないすべての文字を表すために2バイトが使用されます。最初のバイトの値は(161–247) で、2 番目のバイトの値は(161–254) です。これらの範囲はすべて UTF-8 のように ASCII の範囲外であるため、 EUC-CN を使用すると、バイトがマルチバイト構造の一部であるかどうかは確認できますが、バイトが最初か最後かは確認できません。
0xA1–0xF70xA1–0xFE
UTF-8と比較すると、 GB/T 2312 (ネイティブか EUC-CN でエンコードされているかに関係なく) はよりストレージ効率に優れています。UTF -8ではCJK 表意文字1つにつき3 バイト[a]を使用するのに対し、 GB/T 2312 では 2 バイトしか使用しません。ただし、 GB/T 2312 は Unicode ほど多くの表意文字をカバーしていません。
qūwèiコード ポイントを EUC バイトにマッピングするには、0xA0行番号 (または qū、区) とセル/列番号 ( tenまたは wèi、位) の両方に 160 () を追加します。コード ポイントの行番号への加算結果が上位バイトを形成し、コード ポイントのセル番号への加算結果が下位バイトを形成します。
例えば、quwèiのセル45-66にある文字「外」をエンコードする場合、上位バイトは行番号45を使用し、45+160=205=となり0xCD、下位バイトはセル番号66から取得されます:66+160=226=となる0xE2。したがって、完全なエンコードはとなる<CD E2>。[10] [11]
ISO-2022-CN
ISO-2022-CNは GB/T 2312 の別のエンコード形式で、公式ドキュメントでも指定されています。このエンコードはISO-2022標準を参照しており、これも ASCII にない文字をエンコードするために 2 バイトを使用します。ただし、ASCII の拡張領域を使用する代わりに、ISO-2022 は ASCII と同じバイト範囲を使用します。最初のバイトの値は0x21–0x77(33–119) で、2 番目のバイトの値は0x21–0x7E(33–126) です。バイト範囲が ASCII と大幅に重複しているため、文字が ASCII 範囲内にあるか、拡張領域の 2 バイト シーケンスの一部であるかを示す特殊文字、つまりShift Out 関数と Shift In関数が必要です。テキストの不適切な処理によって情報が失われる可能性があるため、エンコードが誤っているリスクがあります。
qūwèiコード ポイントを ISO-2022 バイトにマッピングするには、0x20行番号 (または qū、区) とセル/列番号 (または wèi、位) の両方に 32 () を追加します。コード ポイントの行番号への加算結果は上位バイトを形成し、コード ポイントのセル番号への加算結果は EUC エンコードと同様に下位バイトを形成します。
例えば、quwèiのセル45-66にある文字「外」をエンコードする場合、上位バイトは行番号45を使用し、45+32=77=となり0x4D、下位バイトはセル番号66から取得されます:66+32=98= 0x62。したがって、完全なエンコードは次のようになります<4D 62>。[11]
ヘルツ
HZは GB/T 2312 の別のエンコードで、主にUsenet の投稿に使用されます。文字は ISO-2022-CN と同じバイト ペアで表されますが、GB 2312 テキストの範囲の先頭と末尾を示すバイト シーケンスは異なります。
コードチャート
以下の表では、プレフィックス バイトまたはコーディング バイトに 16 進数のペアが指定されている場合、 ISO-2022-CNまたはHZ-GB-2312 のように GL ( 0x21-0x7E ) でエンコードされるときは小さい方 (8 番目のビットが設定されていないか使用できない) が使用され、 EUC-CN 、 GBK または GB 18030のようにGR ( 0xA1-0xFE )でエンコードされるより一般的な場合には大きい方 (8 番目のビットが設定されている) が使用されます。Qūwèi数は10 進数で指定されます。
GB/T 2312 が GR でエンコードされると、両方のバイトの 8 番目のビットが設定されます (つまり、0x7F より大きくなります)。GBK と GB 18030 も、拡張の目的で最初のバイトのみに 8 番目のビットが設定された 2 バイト コードを使用します。このようなコードは GB/T 2312 プレーンの外側にあるため、ここでは表に示しません。
リードバイト
この表は、GB/T 2312 文字セットのメイン プレーンの全体的なレイアウトをリード バイト別に詳細に示しています。漢字以外の文字に使用されるリード バイトについては、そのリード バイトでエンコードされた文字を一覧表示するこのページの表へのリンクが提供されています。漢字に使用されるリード バイトについては、 Wiktionaryの漢字索引 の適切なセクションへのリンクが提供されています。
非漢字行
以下の表は、 GB/T 2312、GB/T 12345、およびGB 18030の 2 バイト領域 1 (GB/T 2312 の非漢字領域にほぼ相当) で使用可能な非漢字をリストしたものです。これらの文字が異なる箇所、および GB 6345.1 と ISO-IR-165 がこれらと異なる箇所については注記しています。比較のため、他の CJK 国別文字セットに関する記事への相互参照も行っています。
GB2312の2つの実装
GB/T 2312 ( U+00B7 · MIDDLE DOTおよびU+2014 — EM DASH ) に対応するGBKおよびGB 18030のサブセットにおける句点 ( 中国語 : 隔点; 文字通り「区切り点」) および破折号 ( 中国語 : 破折号 )のUnicodeマッピングは、以前はUnicodeコンソーシアムによって提供されていたデータファイルである GB2312.TXT ( U+30FB・KATAKANA MIDDLE DOTおよびU+2015 ― HORIZONTAL BAR )に記載されているものと異なります。[13]このデータファイルは2011 年 8 月から廃止済みと指定されており[14]、2016 年 9 月現在、提供されていません。
2015年現在、Microsoft .Net Frameworkはgb2312、 というラベルの付いたデータ内のこれら2つの文字をマッピングする際にGB 18030マッピングに従いますが、ICU、[15] iconv-1.14、[16] php-5.6、ActivePerl-5.20、Java 1.7、Python 3.4 [17] は、ラベルへの応答としてGB2312.TXTに従いますgb2312。Ruby 2.2は両方の実装と互換性があり、内部的に競合する文字をGB 18030サブセットに変換します。HTML5で使用するためのW3C / WHATWGの技術勧告では、 というラベルの付いたストリームに対して推論されるGBKエンコーディングを指定しており、これはGB18030デコーダーを使用します。[18]gb2312
他にも様々なマッピングが個々のベンダーによって定義され、使用されており、[13] Appleのものもその1つである。[19]
文字セット 0x21/0xA1 (行 1: 句読点と記号)
この行には句読点、数学演算子、その他の記号が含まれます。次の表は、これらのGB/T 2312文字のGB 18030マッピング[20]を最初に示し、その後に他の文書化されたマッピングを示します。
文字セット 0x22/0xA2 (行 2: リスト マーカー)
この行にはさまざまな種類のリストマーカーが含まれています。ローマ数字の小文字は、元のGB/T 2312 [21]にもGB/T 12345 [6]にも含まれていませんでしたが、 Windowsコードページ936 [22]とGB 18030 [ 20]の両方に含まれています。ユーロ記号もGB 18030によって追加されました。 [20]
文字セット 0x23/0xA3 (行 3: ISO 646-CN)
この行には、ASCIIの国内版であるISO 646-CN (GB/T 1988-80) が含まれています。韓国の ISO 646 バージョンと同じであるKS X 1001 の行 3と、英数字のサブセットのみを含むが同じレイアウトのJIS X 0208およびKPS 9566 の行 3 を比較してください。次の表は、 ISO 646-CN の一覧です。
EUC-CN(およびそのスーパーセットであるGB 18030)などのASCIIとの組み合わせが可能なエンコードで使用される場合、これらの文字は通常全角文字として実装されるため、以下に示すように半角および全角フォームブロックへのマッピングが使用されます。GB 6345.1でもこの行を全角として扱い、半角フォーム(上記)を行10として追加します。[1] Appleは主にこの行を以下のように全角コードポイントにマッピングしますが、上線と元記号には上記のように非全角マッピングを使用します。[19]
文字セット 0x24/0xA4 (行4: ひらがな)
この行が一致するJIS X 0208 の行 4 と、同じレイアウトを使用しているが異なる行にある KS X 1001およびKPS 9566の行 10 と比較してください。
文字セット 0x25/0xA5 (行5: カタカナ)
このセットには、日本語を表記するためのカタカナが含まれています。ただし、カタカナテキストで使用され、JIS X 0208の1行目に含まれる日本語の長母音記号は、GB/T 2312には含まれていませんが、GBKとGB 18030では、メインのGB/T 2312プレーンの外側の0xA960に追加されています[24]。[20]
この行が一致するJIS X 0208 の行 5 と、同じレイアウトを使用しているが異なる行にある KS X 1001およびKPS 9566の行 11 と比較してください。
文字セット 0x26/0xA6 (行 6: ギリシャ文字と垂直拡張)
この行には、発音区別符号や末尾のシグマのない現代ギリシャ語アルファベットの基本的なサポートが含まれています。
強調表示された文字は縦書きの句読点の表示形式で、GB/T 2312自体には含まれていないが、GB/T 12345、[1] [6] Windowsコードページ936、[22] Mac OS簡体字中国語、[19]、GB 18030 [20]ではこの行に含まれている。これらは「GB 2312の標準拡張」と見なされている。[19]逆に、ISO-IR-165では、この行にパターン化された半グラフィック文字(ほとんどがUnicodeに正確に対応する文字がない)が含まれており、縦書き拡張に使用されるコード位置と衝突している。[25]
縦書きが含まれていない場合にこの行が一致するJIS X 0208 の行 6と、同じレイアウトで同じギリシャ文字を含み、縦書きではなくローマ数字を追加しているKPS 9566 の行 6と比較してください。ギリシャ文字をオフセットしてローマ数字を最初に含めるKS X 1001 の行 5とは対照的です。
文字セット 0x27/0xA7 (行 7: キリル文字)
このセットにはキリル文字の33文字が大文字と小文字の両方で含まれており、現代のロシア語アルファベットとブルガリア語アルファベットを書くには十分ですが、他の形式のキリル文字には追加の文字が必要です。[27]
この行が一致するJIS X 0208 の行 7 と、同じレイアウトを使用しているが異なる行にある KS X 1001 の行 12およびKPS 9566 の行 5と比較してください。
文字セット 0x28/0xA8 (行 8: 注音と非 ASCII ピンイン)
この行にはボポモフォとピンイン文字が含まれますが、ASCII文字(行3にあります)は含まれません。強調表示されている文字は、基本GB 2312セットには含まれておらず、GB 6345.1 [19]によって追加された文字であり、GB/T 12345 [1] [6] Windowsコードページ936 [ 22] Mac OS簡体字中国語[19]およびGB 18030 [20]にも含まれています。これらは「GB 2312の標準拡張」と見なされています。[19]
GB 6345.1ではこの行のピンインを全角として扱い、半角のピンインを行11に含めています。[1] GB 18030ではこれを行いません。
文字セット 0x29/0xA9 (行 9: ボックス描画)
漢字列
訂正
GB 5007.1-85 24x24情報交換用中国語文字ビットマップ フォントセット(中国語:信息交换用汉字 24x24 点阵字模集) は、GB/T 2312 に基づく最初のフォント テンプレートであり、次のような修正と拡張機能を備えています。
- ラテンアルファベット「g」のグリフ形状の変更
- 6 つの羽生ピンイン文字を追加: ɑ、ḿ、ń、ň、ƹ、ɡ [注 1]
- 「鍾」を「锺」に変更しました
- 10行目に94個の半角グリフ(3行目の半角形式、GB 1988–80に相当)が含まれていた。
- 8行目の32個の漢語ピンイン文字の半角形式を11行目に含めました。
GB/T 2312 には修正はありませんでしたが、GB/T 12345 を含む GB/T 2312 に基づくフォント テンプレートにはこれらの修正が含まれています。また、そのスーパーセットであるGBKとGB 18030にもこれらの修正が含まれています。GB/T 2312 はISO-IR-165でも使用されています 。
参照
- 国標コード
- CJK文字
- 中国語の文字エンコーディング
- ユニコード
- Big5 – 台湾と香港で使用されている標準
- GB 18030は、GB/T 2312-1980 に取って代わりました。
- GB/T 12345-1990、GB/T 2312-1980 の従来の対応物、GB18030 に置き換えられました。
参考文献
- ^ abcde Lunde, Ken (2009). CJKV 情報処理: 中国語、日本語、韓国語、ベトナム語コンピューティング(第 2 版).セバストポル、カリフォルニア州: O'Reilly . pp. 94–111. ISBN 978-0-596-51447-1。
- ^ “2017年第7号中国国家标準公告 (中国国家標準公告2017 No.7)”.中華人民共和国標準化局。2018 年7 月 3 日に取得。
- ^ 「中国および領土を使用するウェブサイト間の文字エンコーディングの分布」w3techs.com 。 2022年9月4日閲覧。
- ^ 「ウェブサイトの文字エンコーディングの使用統計の歴史的傾向、2022年10月」。w3techs.com 。 2022年10月1日閲覧。
- ^ 「エンコーディング: テスト結果の要約」www.w3.org . 2019年11月15日閲覧。
- ^ abcd Lunde, Ken (1998). 付録 F: GB/T 12345 (PDF) . O'Reilly Media . ISBN 9781565922242。
{{cite book}}:|work=無視されました (ヘルプ) - ^ GB12345-80 から Unicode テーブルへ。Unicode Consortium。1993-12-06。2004-06-17時点のオリジナルよりアーカイブ。
- ^ ウィリアム・C・ハンナス (1997)。アジアの正書法のジレンマ。ハワイ大学出版局。 p. 264.ISBN 9780824818920このセットは、
すべての用途の 99.99 パーセント以上に対応しています。しかし、設計者は、不測の事態に対応するために 14,276 個の「特殊用途」文字を追加する必要があると判断しました。
- ^ 「GB 2312-1980: 情報技術 - 情報交換用中国語表意文字コード化文字セット (基本セット)」 1981 年 5 月。
- ^ “Unicode to GB2312 or GBK table”. cs.nyu.edu . 2016年3月3日時点のオリジナルよりアーカイブ。 2022年1月11日閲覧。
- ^ ab ルンデ、ケン・ロジャー(2008 年 12 月)。 CJKV 情報処理 (第 2 版)。オライリー。ISBN 978-0-596-51447-1。
- ^ 「GB 2312-1980: 情報技術 - 情報交換用中国語表意文字コード化文字セット(基本セット)」1981年5月。 2016年10月2日閲覧。
- ^ ab Haible, Bruno. 「GB2312 (Conversion Tables)」 。 2016年9月29日閲覧。
- ^ 「Readme – MAPPINGS/OBSOLETE/EASTASIA」。2001年8月9日。 2016年9月29日閲覧。
- ^ "java-EUC_CN-1.3_P.ucm" . 2016年9月29日閲覧。[永久リンク切れ]
- ^ "libiconv:lib/gb2312.h". GNU Savannah . 2016年9月29日閲覧。
- ^ 「問題 24036」。Pythonバグトラッカー。
- ^ 「エンコーディング § 名前とラベル」 W3C . 2016年9月29日閲覧。
- ^ abcdefghij 「Mac OS 簡体字中国語エンコードから Unicode 3.0 以降へのマップ (外部バージョン)」Apple, Inc.
- ^ abcdefghij 中国標準化管理局 (SAC) (2005-11-18). GB 18030-2005: 情報技術 - 中国語コード化文字セット。
- ^ 中国標準化協会. 情報交換用中国語コード化グラフィック文字セット(PDF) . ITSCJ/ IPSJ . ISO-IR -58.
- ^ abcdef Microsoft . 「CODEPAGE 936: PRC GBK (XGB) - ANSI、OEM」. Unicode コンソーシアム.
- ^ ab Viswanadha, Raghuram (2000-08-30). 「Unicode から ISO-IR-165 へのテーブル」。International Components for Unicode。IBM 。
- ^ Lunde, Ken (2009). 「Seemingly Missing Characters」CJKV 情報処理: 中国語、日本語、韓国語、ベトナム語コンピューティング(第 2 版)セバストポル、カリフォルニア州: O'Reilly . p. 180. ISBN 978-0-596-51447-1。
- ^ ab CCITT (1992-07-13). 通信用中国語グラフィック文字セットのコード(PDF) . ITSCJ/ IPSJ . ISO-IR -165.
- ^ Lunde, Dr Ken (2022年8月4日). 「GB 18030-2022規格」. Medium . 2022年8月7日閲覧。
- ^ Czyborra, Roman (1998-11-30) [1998-05-25]. 「The Cyrillic Charset Soup」. 2016-12-03時点のオリジナルよりアーカイブ。2016-12-03に閲覧。
- ^ 「Unicode 文字エンコーディング安定性ポリシー」。Unicode コンソーシアム。2017 年 6 月 23 日。
注記
- ^ GB/T 2312 でカバーされる表意文字のみ。すべて Unicode BMP に該当します。
- ^ ab ISO 2022互換の94 n文字セットとして、プレーンスペースと削除文字は、それぞれ0x20と0x7F(0xA0と0xFFではない)のシングルバイトコードとして使用できます。
- ^ GB 6345.1に基づくほとんどの実装ではU+FF47に使用されているが、これにはAppleの実装やGB 18030(U+0261に8-32を使用)も含まれる[20]が、 ISO-IR-165ではU+0261に使用されている。[23]
- ^ abcdefghijこれらの文字は 縦書きブロックの文字です。使用されているマッピングの一部は、Unicode に存在していた縦書き表示形式がCJK 互換形式ブロックの文字だけだったときに設計されたものです。具体的には、Windows-936 および以前の GB 18030 では、定義されたグリフを持つ私用領域にマッピングされています[22] [20]また、Apple では、バリエーションマーカーとして私用文字 U+F87E を付加した通常の全角文字にマッピングされています[19] GB 18030-2022 更新では、これらの私用領域のマッピングは削除され、標準の Unicode コードポイントにマッピングされるようになりました。[26]
- ^ GB 18030の初版(2000年)およびWindows-936では私的使用領域U+E7C7にマッピングされていました。 [22]これはGB 18030の2005年版で修正されました。 [20]
- ^ この合成文字はUnicode 3.0で追加されました。それ以前は、この文字はAppleによって合成シーケンス( U+006E+0300 )にマッピングされていました。 [19]この変更は、Unicode 3.1で導入されたUnicode正規化形式の安定化に先行しています。 [28]これはWindows-936によって私的使用領域U+E7C8にマッピングされています。 [22]
- ^ GB 18030 [20]およびGB 6345.1 [19]に基づく他のほとんどの実装(U+FF47に3-71を使用)ではU+0261にマッピングされていますが、ISO-IR-165ではU+FF47にマッピングされています。[23] [25]
さらに読む
- ルンデ、ケン (2009)。「中国語文字セット標準- 中国」。CJKV 情報処理(第 2 版)。O'Reilly。ISBN 978-0-596-51447-1。
外部リンク
- ICU のコンバータ エクスプローラーでの GB2312 のグラフィカル表示
- Unicode から GB2312 または GBK テーブルへ
- 中国語の文字コード
- GBK と GB2312 が GB18030 に進化
- GB2312 中国語文字セット
- 情報交換用コード化中国語グラフィック文字セット ISO-IR 58
- Cコードは6763の基本文字を生成し、出力は
- China-Language.gov.cn の GB2312-80 規格
