最近仕事の都合で文字コードの事ばっかり調べています。
纏めるにはもう少しかかりそうなんですけど、文字コード調べるにあたって、知っておいた方が良いことをさらっと書きます。
まず基本となるのはISO2022という形式。
これは文字コード系ではなく、文字コード系切り替え手法を定義していて、コレを抑えておかないと、JISX0208とか、JISX0213が理解出来ません。 泣
特徴は、0x1b(ESC)をつかって文字をコード表を切り替えることと、複数バイトを1文字に割り当てることが出来ること。
94×94=8,836文字表現可能です。
JISX0208は普段我々が使う文字コードで、第一水準と第二水準の漢字が含まれます。WindowsXPはコレに準拠しています。
VistaはJISX0213準拠で、2004年に編纂されたJISX0213:2004に準拠しています。
とはいっても、WindowsはJISXを拡張したcpxxxシリーズを使っています。
JISX0208であればcp932とかがそれにあたります。
あとちょっと困るのが、JISXの中には、ベンダーによって違う文字が割り当てられているものがあります。いわゆる機種依存文字って奴ですね。JIS -> unicodeなら問題ないんですけど、そのあと、unicode -> JISとすると、文字が変わってしまう事があります。ラウンドトリップ問題とか言われる奴です。
一番なじみの深い、Shift_JISは、実はISO2022に準拠していなくて、独自のコード体系ですが、JISXが採用している区点式のコードから計算式で算出可能です。
まぁ、算出できたところで、WindowsVistaでさえ、フォントに含まれていない文字形(グリフ)があったりするので、JISX0213に準拠するアプリを作るときは注意が必要なようです。
また、JISX0213にはサロゲートペア文字(UCS4)がいるので、コレも注意。聞いたところによると300文字程度らしいですけど。
暫くはこの辺りを調べ回る事になりそうです。
コメント