2012年8月26日日曜日

Unicode崩壊への道か?

Android Jelly Beanで追加された機能に、
・The new Emoji characters from Unicode version 6.0
というのがあって、その表示を調べていたのですが、久しぶりにUnicodeの文字コードを直接扱うようなプログラムを書くために調べ直していたら、当初の目的を大幅に逸脱して、むちゃくちゃなコード体系に変貌していることに、今頃ですが気が付きました。

全ての言語の文字コードを統一しようという目的で策定されたのがUnicodeで、名前自体も単一(uni)な符号(code)なわけですが、あれもこれもと入れまくって(結局却下されたがクリンゴン文字まで入れようという動きがあった)、16bitでは収まりきらなくなって、現在は21bitに拡張されています。
実際には21bitでも足りないのとハングル文字やタイ文字などの要素の組み合わせで表示する文字を扱うために、結合文字という複数のコードの組み合わせもあるのですが、結合の開始終了制御がないので、その扱いは実装依存になっていて、結合文字を含む文字列データを受け渡すと文字化けする現象も発生します。

ざっと調べたところでは、Androidでは結合文字はUnicode3.0までは扱えるけど、それ以降は別々の文字として扱っています。

調べて行けば行く程、とっくの昔に「Unicodeで世界の文字を統一しよう」という理念は崩壊しています。
もうUnicodeなんて捨てて、今こそTRONコードの出番だと思うのですよ。
まあ文字コードは、各文字に一つずつコードを割り当てればOKというものでもないですし(日本語だと検索する時に異字体を同じ文字と認識する必要がある)、TRONコードに問題がないわけでもないですが、少なくとも現状のUnicodeの酷さに比べると遙かに美しく体系がすっきりしているわけで。

このUnicodeの問題は、日本人が一番影響を受けるのだから、日本が先頭を切って進めなければいけないのですけど、何故か日本の情報関連企業は、規格策定には無関心というか逃げたがるというか、他人事の態度なのですよね。

Unicode6.0に各キャリアの絵文字を追加しようという動きをGoogleが中心になって、Apple、Microsoftと一緒に推進していたときも、本来であれば当事者である日本のキャリア各社は傍観を決め込んで、なんら関わろうとしていません。
後で苦労するのは自分たちであることに気が付いていないのでしょうかね?
まあ、苦労するのは現場の技術者で、経営者は部下を怒鳴りつけてやらせるだけなんだけど。

0 件のコメント:

コメントを投稿