« 2006年01月04日 | メイン | 2006年01月06日 »

2006年01月05日

PDFと文字(16) –漢字統合の破綻

Unicodeの漢字統合は、中国、日本、韓国で同じ字形の漢字をひとつのコードポイントにまとめた、と言いました(1月3日)。しかし、UnicodeV3.1の統合漢字拡張Bを調べてみますと、UnicodeのCJK漢字統合は破綻してしまったのではないかという印象をもちます。

ここにいくつかその例を挙げます。
1.一般統合漢字と同じ漢字が定義されている例
○一般統合漢字
U+4E8C0001.PNG

○統合漢字拡張B
U+2011E0001.PNG

この2つの漢字は字形が完全に同じものではないでしょうか?なぜ、まったく同じ字形を別のコードポイントに追加したのでしょう?

2.一般統合漢字に統合されるはずの漢字が別に定義されている例
(1) ハネの有無
○一般統合漢字
U+5C0F0001.PNG U+51E00001.PNG

○統合漢字拡張B
U+21B540001.PNG U+206270001.PNG
この2組の漢字は、ストローク終端のハネの違いです。ストローク終端のハネの違いは、書体の違いとして統合するという例がUnicodeの仕様書に出ています。しかし、統合漢字拡張Bで分離されて新しいコードポイントを与えてしまいました。

(2) 点の有無
○一般統合漢字
U+56680001.PNG U+7A810001.PNG

○統合漢字拡張B
U+20F96.PNG U+2592E0001.PNG

この2組については、1月3日に日本語と中国語の字形の例で示しました。一般統合漢字では、点のある器点のない器点のある突点のない突は、ひとつのコードポイントに統合されています。ところが、統合漢字拡張Bで、点のない器点のない突が、新たに別のコードポイントを与えられてしまいました。

これは、統合漢字拡張Bのコードチャートを1,2時間ざっとみて見つけたものです。コードチャートを詳細にチェックすると他にもこのような例が一杯出てくるのではないかと思います。

Unicodeの仕様書では、一般統合漢字と統合漢字拡張の統合ルールは、原規格分離規則を除いて同一と説明されています。しかし、上の例で示しましたように、実際のコードチャートを見ると、それ以外にも統合ルールが違っていることになります。この統合ルールの変更は仕様書に書いてない、闇ルールということになります。

Unicode仕様書によれば、統合漢字拡張Bには、使用制限がなく、一般統合漢字と混在使用できます。従って、一つの漢字に複数のコードポイントを与えてしまった問題は、理論的に救済不可能と思います。

どうしたら良いんでしょうか?実装の段階で一方を使わないようにするんでしょうか?

それにしても困ったものです。実装者泣かせの仕様書ですね。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック