seclan のほえほえルーム

| |

JIS X 0213 と EUC の関係

・
2000/10/25 []

 UNIX での日本語文字コードを扱うために使用されている従来の EUC は次のようなものでした。
第1バイト第2バイト第3バイトコード体系
0xxx xxxx

ASCII
1xxx xxxx1xxx xxxx
JIS X 0208 (第一・二水準)
1000 11101xxx xxxx
JIS X 0201 カタカナ
1000 11111xxx xxxx1xxx xxxxJIS X 0212 (補助漢字)

 xxx xxxx の部分はそれぞれ対応する文字コードが入ります。例えば、JIS X 0208 は JIS コードとして 7bit 毎の 2 バイトのコードとして表現できるので、それぞれのバイトを xxx xxxx に当てはめます。つまり、JIS コードから EUC コードに変換するときには、JIS コードのそれぞれのバイトに 0x80 を加えればよいということです。例えば、JIS コードで 0x2123 は EUC では 0xa1a3 になります。
 さて、この機構で JIS X 0213 を扱うために、日本語用の EUC は次のように運用することになったようです。
第1バイト第2バイト第3バイトコード体系
0xxx xxxx

ASCII
1xxx xxxx1xxx xxxx
JIS X 0213 1面
1000 11101xxx xxxx
JIS X 0201 カタカナ
1000 11111xxx xxxx1xxx xxxxJIS X 0213 2面 (+ JIS X 0212)

 従来 JIS X 0208 だった部分に、JIS X 0213 の 1 面を割り当て、JIS X 0212 の部分に JIS X 0213 の 2面を割り当てます。1 面の部分は JIS X 0208 のほぼ上位互換なので互換性の問題はほとんどないのですが、問題は JIS X 0212 の部分です。実は、この部分は、JIS X 0212 の漢字と重ならないように、うまく JIS X 0213 の漢字が配置されています。つまり、JIS X 0213 の 2 面は JIS X 0212 の漢字部分と重ならない、1, 3-5, 8, 12-15, 78-94 区にしか漢字が配置されていません。そのようなことから、なんとか JIS X 0212 と混在して使用することができます (しかし、このあおりを食って JIS/SJIS の変換ルーチンが複雑化しました)。


by seclan

関連


| |

 

配信

26.15 msec