English page もどる

漢字統合の問題 (2002-04-06)

漢字には、「異体字」という独特な概念があります。 それは、「文字」と「グリフ」のちょうど中間に位置する概念です。

文字コードは、文字をコード化するものであって、グリフをコード化 するものではありません。したがって、私の知る限り、すべての文字コードは 異なる文字に異なるコードポイントを与え、異なるグリフには与えません。 しかし、異体字については、どうでしょうか。

Unicode や JIS を含む、多くの文字コード規格が、「すべての異体字に 共通のひとつのコードポイントを与える」という方針をとっています。 しかし、文字コード規格によって、以下の点に相違が見られることがあります。

例外となる異体字の問題については、Unicode は、中日韓の 国ごとの規格が持っている以上の問題を追加することはありません。 それは、Unicode 「ラウンドトリップ変換の互換性」 (あるいは「ソース分離」) という原則に よるものです。この原則は、中日韓の規格において分離され別々の コードポイントを持つ異体字は Unicode においても分離し別々の コードポイントを与えるというものです。例えば、「辺」「邊」「邉」 は JIS X 0208 で分離して扱われている異体字で、Unicode においても U+8FBA、U+9089、U+908A と分離されています。

しかし、Unicode の初期バージョン以降に、日本では新しい規格である JIS X 0213 が発表されました。厳密に言えば、包摂基準は JIS X 0213 と Unicode で一部相違があります (200 字以下)。 もうひとつの例は台湾の規格 CNS 11643 の 3 面以降です。 ただし、Unicode の JIS X 0213 に対するラウンドトリップ変換互換性は、 Unicode の CJK COMPATIBILITY IDEOGRAPHS (互換漢字) を用いることで 保証されます。CNS 11643 については知りません。

現実に最も大きな実装コストがかかるのは、暗黙の代表字形問題です。 JIS のような地域ごとの規格が多くの異体字を包摂しているのは事実ですが、 フォント開発者はその異体字のうちどれを用いたらよいかについて迷うことは ほとんどありません。というのは、それぞれの文字について、最もよく 用いられる異体字があるからです。しかし、どの異体字が最もよく使われるか、 や、(複数の異体字が使われる場合には) どの異体字をどの場面で使うか、 ということは地域ごとの文化に強く依存するために、同じ包摂基準を 国際的な文字コード標準に適用すると、実装のときに問題が起こる 可能性があります。

ある国ではある異体字が使われていて、別の国では別の異体字が使われている という場合、これが問題になります。中国や韓国で用いられている異体字が 日本ではあまり知られていない場合 (たとえば U+6D77) や、読めない場合 (たとえば U+76F4) があります。

異体字は、非常に似た形をしている場合もあれば、非常に異なる形をしている こともあります。明らかに別の漢字が非常に似た形をしていることもある (例えば「土」と「士」) ので、見た目の類似性が、見たこともない異体字を 読むのを助けるとは限りません。

したがって、Unicode の中日韓統合漢字について、共通の「世界版」フォント をデザインすることはできません。できるのは、「日本語版 Unicode フォント」、 「中国語版」「韓国語版」の開発です。「世界版」のコンピュータシステムは、 日本語版、中国語版、韓国語版のフォントを備えている必要があります。

したがって、そのようなシステムは、どのフォントを選ぶかを決定する アルゴリズムが必要になります。以下の手順が良いと思われます。

  1. もしドキュメントが何らかの形で言語を指定している場合 (Unicode の言語タグ、SGML の言語タグ、その他の方法で)、 その情報を用いるべきです。
  2. もし 1 があてはまらない場合、もしユーザが第一に用いている言語が システムに知られているなら (たとえば、地域化された OS の場合や、 LANG 環境変数によって)、その情報を用いるべきです。
  3. もし 1 も 2 もあてはまらない場合、最終的には日本のフォントを 使うべきです。なぜなら、日本人は、中国語や韓国語で主に用いられる 文字を知らなかったり奇妙に思ったりする傾向があるからです。 この点について、私は間違っているかもしれません。というのは、 私は、平均的な中国人や韓国人の持っている平均的な知識がどんな ものかというのを知らないからです。

今のところ、テキストファイルにおいて異体字を指定する方法は Unicode にはありません (JIS にもありません)。しかし、 異体字を指定する方法を追加しようとしているようです。 Unicode 3.2 において追加された「variation selector」がそれです。

FE00 VARIATION SELECTOR-1
FE01 VARIATION SELECTOR-2
FE02 VARIATION SELECTOR-3
FE03 VARIATION SELECTOR-4
FE04 VARIATION SELECTOR-5
FE05 VARIATION SELECTOR-6
FE06 VARIATION SELECTOR-7
FE07 VARIATION SELECTOR-8
FE08 VARIATION SELECTOR-9
FE09 VARIATION SELECTOR-10
FE0A VARIATION SELECTOR-11
FE0B VARIATION SELECTOR-12
FE0C VARIATION SELECTOR-13
FE0D VARIATION SELECTOR-14
FE0E VARIATION SELECTOR-15
FE0F VARIATION SELECTOR-16
標準化された異体字の一覧を見ることができます。それによると、
今のところ、漢字の異体字は存在しません。作られれば、その一覧は ここに追加されます。
このように、将来の Unicode においては、漢字の異体字を指定することが できるようになると思われます。


Tomohiro KUBOTA <debian at tmail dot plala dot or dot jp>