見出し画像

GB18030-2022が来た!詳細編—内容から読み取る本質〈エリックの多言語文字散歩〉

前回の概要編では、じっくりとGB18030-2022の表紙を見ながら、中国におけるGBの定義、GB18030規格改定の概要、製品への搭載義務などについて解説しました。今回は、いよいよ表紙をめくって更新された内容について詳しく解説していきます。


漢字はとにかく多い

GB18030-2022の規格書の実物を見ると、まずその厚みに圧倒されるでしょう。700ページを超えるページをパラパラとめくってみてわかるのは、本文はわずか8ページ程度で、残りのほとんどは付属書である長い文字コード表ばかりです。

文字コードの国際標準としてISO/IEC 10646があります。そして業界規格のUnicodeとおおむね互換しています。一方でGB18030は中国独自の規格です。GB18030は策定当初から国際標準の存在を意識して設計され、膨大な量のコードポイント(符号位置)と、各文字コードを相互変換するための対応表を用意してきました。その結果、国際標準が策定している文字は、すべてGB18030のコードに対応できるようになっています。

国際規格では「CJK統合漢字」と呼ばれる、漢字文化圏で使われている漢字をひとまとめにした漢字集合があり、基本セット(URO)と、拡張セットA、B、C…のように、年々拡張される領域があります。GB18030もそうした国際規格に対応し、増え続ける「CJK統合漢字」にGBのコードを付与しています。GB18030の第3次規格の更新作業が始まったのは2017年でした。当時の目標のひとつは、2017年6月にリリースされたUnicode 10.0から追加された7473文字の漢字「CJK統合漢字拡張F」に対応することがありました。

フォント実装の立場からすると、どうしてもGB18030の「字形」が気になってしまいますが、GB18030はあくまでも文字のコード(符号化)を規定する標準であり、文字自体をどう書くかの標準ではありません[※1]。厳密にいえば、今現在、中国の字形標準は『通用規範漢字表』のみとなり、GB18030に印刷されている字形はあくまでも参考用の「例示字体」となります。

[※1] 日本語の文字に関する規格にJIS X 0213があり、これにも「個々の図形文字の具体的字形設計などはこの規格の適用範囲とはしない」と明記し、字形を対象外と定義しています。

実装レベルってなに?

膨大な量の漢字をひとつのフォントに実装することは、とても大きな負担となります。そうした負担に配慮した「实现级别」というものが用意されています。日本語で表すと「実装レベル」となります。用途によって対応する漢字の量(範囲)を選ぶことができる、レベル分けのことです。GBの「強制標準」という強面の裏にはこうした柔軟な一面もあるのです。

具体的にGB 18030-2022が規定している3段階の実装レベルを見てみましょう。製品やサービスに応じて、組み込むフォントに必要なレベルが異なります。

実装レベル1の対象は「すべての機器」です。これは事実上の強制ですが、その範囲は第2次規格(GB 18030-2005)とほぼ同じです。「ほぼ」といったのは微妙な差分があるためで、文字の方から見ればCJK統合漢字の基本セット(URO)に66文字が増えていますし、コードの方から見ると国際標準コードとのマッピングを変更した箇所がいくつもあります。

このため、第2次規格適合を標ぼうするフォント製品は更新作業をしておかないと、そのままでは規格に不適合になってしまいます。

実装レベル1から196文字を追加することで実装レベル2に対応することができますが、これは『通用規範漢字表』へ対応するために追加された文字となります。

前回の概要編でも紹介しましたが、2013年発表した『通用規範漢字表』は中国で最も重要な字表であり、8105文字が定められ、実装レベル1から見ると196文字が増えているという規格になります。

実装レベル1と2の差分の196文字
書道家の名前である趙孟頫にも魚のアンコウにも『通用規範漢字表』で追加された文字が使われており、意外とよく使う文字が含まれていることがわかります

実装レベル3はいわゆる全部盛りですが、これを実装するのはかなり大変でしょう。そもそもOpenTypeの仕様上、ひとつのフォントファイルに含めることができるグリフ(文字)の上限数は65,535ですが、それをはるかに超えていますね。GB18030-2022は「政府および公共サービス」だけが対応する必要がある、とされています。

GB18030とUnicodeの文字コード

文字コードといえば、世の中はほとんど業界規格のUnicodeを使っています。前述のように、国際標準のUnicodeに収録された漢字は、すべてGB18030のコードで網羅されているので、GB18030とUnicodeのコードポイントは1対1で完全にマッピングできます。Unicodeの立場から見れば、GBコードはあくまでもUnicodeの文字符号化形式の一種にも見えてしまいます。Unicodeに対応した実装であれば、この対応表を使ってGB18030-2022にも対応できるようになります。

GB18030-2022付属書Aの一部。この2バイト2区の表から「冬」という漢字のGBコードは`B6AC`だと分かります。そして漢字の真下にはUnicodeのコードポイントとして`51AC`が記載されています。

GB18030とUnicode、両者の規定を更新するタイミングが異なるため、そのコードを1対1に対応しようとしても、うまくできない場合があります。中国に必要な漢字がUnicodeにまだない場合、GB18030では一時的にUnicodeの私用領域にマッピングするしかありませんでした。後に国際審議を経て、それらの漢字が正式なUnicodeのコードポイントを獲得したら、追ってその情報を、新版GB18030対応表に反映する必要があります。このような手続きがマッピングをややこしくする原因となっています。

GB18030の第2次、第3次規格もぞれぞれ「マッピングが修正された」という詳細が記載された付属書がついていますが、こうした原因があるためです。
マッピングの変更詳細はかなり細かく、しかも紙の印刷版に誤植もあったため、GBを策定するNITSはテキストファイル形式でデータを配布しています。マッピングの変更詳細が必要な場合は、NITSの公式ページからダウンロードすることを強くおすすめします。

すでに計画されている追補

17年ぶりの更新を経て施行され、やっと一安心かと思いきや、実は早くもGB 18030-2022の追補審議が始まっています。まだ施行されていない2022年9月に、すでに「追補1」の提案が公開され、その後パブリック・コメントが2回行われました。

その背景には、GB 18030-2022はあくまでも2017年の国際標準に合わせたもので、その後の動向を見ると、ISO/IEC 10646はすでに2020版が発表され、さらに2023年に追補を足していますし、UnicodeのCJK統合漢字は拡張G、H、Iまで増えています。

さらに問題なのは、これらの差分の中で、CJK統合漢字の基本セット(URO)の末尾に16文字が、拡張Aブロックの末尾には10文字が追加されました。この「URO+拡張A」への対応は、GB「実装レベル1」の強制される範囲なので、「追補1」が正式に公布された後、さらにこれら26文字へ対応するための追加作業が必要となります。

これではキリがないな、と思う方もいるかもしれませんが、この作業は最後であるともいえます。なぜなら「URO+拡張A」のコードポイントはこの追補1で満タンになり、これ以上の追加はもう不可能であるためです。26文字はすでに国際標準になっており、これ以上の変更がないので、二度手間にならように「追補1」の正式発表を待たずに今のうちにいっぺんに実装してしまうという手もあるでしょう。

残りの拡張分は「実装レベル3」だけに影響を与えますが、実装レベル1と2には関係ありません。国際標準はこれからもさらに拡張していくので、GBも「追補2」「追補3」を出す可能性が十分あります。もし「実装レベル3」を目指している実装がある場合は、その動向に注目しつつ、きちんと追従していく覚悟と体力が求められます。

どう対応すればよい?

フォントユーザーの立場として必要なことは、まず自社製品に合う実装レベルを確かめることです。そして、フォントメーカーに問い合わせる、フォントの仕様を確認するなどで、必要な実装レベルに合ったフォント製品を選びましょう。

これまで解説してきたように、GB18030-2022対応は中国市場に進出する製品の必須条件となります。しっかりと理解して、着実に対応する必要があるのです。

ヒラギノ角ゴ 簡体中文

「ヒラギノ角ゴ 簡体中文」2書体(W3/W6)は実装レベル2に対応し、中国电子技术标准化研究院(CESI)が実施する適合検査に合格しています。仕様やライセンスなど、詳細はSCREENグラフィックソリューションズまでお問い合わせください

著者プロフィール

エリック・リュウ
中国生まれ、東京在住。The Type編集者、W3CのInvited Expertとして「中国語組版要件」議長担当。ニューヨークTDC顧問理事。日中韓を始めファンドリー数社の多言語書体プロジェクトでコンサルタントを務める。著書に『孔雀プロジェクト:中国語組版考え方の再建』、訳書に小林章氏の『欧文書体』『欧文書体2』など多数。

みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!