« 2006年01月01日 | メイン | 2006年01月03日 »
2006年01月02日
PDFと文字(13) – Unicode文字の検討
Unicodeは、アメリカの企業を中心とする私的コンソーシアムが定めている仕様ですが、文字集合の決定、その符号化方式の仕様はISOという国際標準化団体と一緒に決めていることは、12月25日にUnicodeとISO 10646で説明しました。
(1) ISO 10646の仕様は、各国から代表が集まった委員会で議論・投票をして決定しています。このため、決定内容が各国の思惑の違いに左右されることがあるようです。
(2) そして、Unicodeに収容する文字は、ゼロから独自に集めたわけではなく、各国で決まっている標準規格等から収集しています。ここに各国の標準規格との関係をどうするかという課題が生まれます。
(3) また、当初のUnicodeは、16ビットでの実装用に企画されていたため2の16乗(65,536)個のコードポイントしかありませんでした。これは、実装の制限が仕様に影響を及ぼしたことになります。現在は、2005年12月26日に述べましたように、コードスペースが拡張されていますが、この拡張は極めてトリッキーな(tricky;巧妙な、ずるい)方法によるものです。
このような事情から、Unicodeの仕様には、いろいろと問題が出ている面もあるようです。これについて、以下に少し、まとめてみたいと思います。なお、私は、ISOの委員会にもJISの国内委員会にも参加していませんのであまり詳しいことは知りません。Webなどで調べながら書いていますので、誤りがありましたらぜひ指摘していただきたいと思います。
また、前にも申し上げましたが、私自身Unicodeは20世紀の偉業の一つと考えています。実際のところ、いまなにか製品を実装するとしてベースにする符号化文字集合にはUnicode以外の選択肢はないだろうと思います。
そのようなわけで、製品を実装する、あるいは利用する場合に理解しておくべき事柄として問題を整理してみたものです。このことを予めお断りしておきます。
1.漢字について
まず、最初に漢字について見てみましょう。Unicode4.0では次の表のように71,098文字の漢字が定義されています。(12月26日の表から漢字だけ取り出したもの)。
■Unicode4.0の漢字文字数
分類 | コード範囲 | 文字数 | 収容時期 |
---|---|---|---|
CJK統合漢字拡張A (CJK Unified Ideographs Extension A) | U+3400~U+4DB5 | 6,582 | V3.0 |
CJK統合漢字 (CJK Unified Ideographs) | U+4E00~U+9FA5 | 20,902 | V1.0 |
CJK互換漢字 (CJK Compatibility Ideographs) | U+F900~U+FA6A | 361 | V1.0で302文字 V3.2から361文字に増加 |
CJK統合漢字拡張B (CJK Unified Ideographs Extension B) | U+20000~ U+2A6D6 | 42,711 | V3.1 |
CJK互換補助漢字 (CJK Compatibility Ideographs Suppliment) | U+2F800~ U+2FA1D | 542 | V3.1 |
合計 | 71,098 |
※注意
1.正しくは、Ideographを表意文字と訳すべきですが、ここでは分かり易く漢字としています。
2.この表は、Unicode4.0仕様書のAppendix A Table D-2, Table D-3を元に構成したものなんですが、Unicode4.0仕様書の11.1 Han (p.293) の下から3行目では漢字は70,207文字とされています。891文字の違いはどこから来るか分かりません。
さらに、
http://www.unicode.org/Public/UNIDATA/DerivedAge.txt
を見ますと、UnicodeV4.1.0で128文字が追加されています。
分類 | V4.0 | V4.1で追加 | V4.1総数 |
---|---|---|---|
CJK統合漢字拡張A | 6,582 | 0 | 6,582 |
CJK統合漢字 | 20,902 | 22 | 20,924 |
CJK互換漢字 | 361 | 106 | 467 |
CJK統合漢字拡張B | 42711 | 0 | 42,711 |
CJK互換補助漢字 | 542 | 0 | 542 |
合計 | 71,098 | 128 | 71,226 |