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

2007年01月05日

Windows Vista と日本語文字コード問題(2)

JIS X0213:2004の文字でUnicodeでは4バイトで1文字を表す文字がいくつあるかを調べてみました。

これを調べていて、気が付いたことは、JIS X0213:2000(制定時)は、当初はJIS X0213の文字は全てUnicodeのBMP(基本多言語面:2バイト領域)に割り当てる予定だったらしいことです。

2000年の時点ではUnicode3.0でしたが、そこには、JIS X0213:2000で追加した文字の中に、Unicode3.0にはなかったものがあったのでしょう。JIS X0213:2000の付属書11には、UnicodeとJISの文字コードの対応表がありますが、それらの文字は()付きで示されています。

2003年にUnicode4.0が制定されたのですが、その時点で、恐らく日本側の思惑とは裏腹に、一部の文字が、BMPに割り当てられずに、補助面に割り当てられてしまったんですね。

このため、補助面に割り当てられた文字は1文字を4バイトで処理しなければならなくなったという事情がありそうです。

では、実際に、どんな文字がそれに相当するかは、JIS X0213:2004の付属書6の表で、UCSの番号が2xxxxに対応されているものがそれに相当します。

数えますと、32項に302文字、33項(2004年版で追加した文字)に1文字の合計303文字です。文字の字形の一覧は次のページで確認できます。

Vistaで化ける字,化けない字の図6に示されている26文字
Vistaで化ける字,化けない字(続報)の図9に示されている277文字

これらの文字は、Unicodeを1文字2バイト固定で扱うプログラムでは正しく処理できません。

【参考】Unicode(UCS)の制定時と文字の追加について
2005年12月25日 PDFと文字(11) – UnicodeとISO 10646
2005年12月26日 PDFと文字(12) – Unicode仕様の文字

さて、JIS X0213:2004の文字をすべて完全に扱おうとしますと、Unicode文字列の処理でもう一つの問題があります。これについては明日取り上げたいと思います。

投票をお願いいたします

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