表紙 / 自作ソフト / 日記 / 宝箱 / サイト情報 / 検索
一般 / 新C言語 / 駄文
一覧 / 本文

JIS X 0213 FAQ

Last update: 2005/07/30

(c)2000,2002,2005 seclan. All rights reserved.
Homepage: http://seclan.dll.jp/
E-mail: seclan[ここはアトマークに置き換えてください]dll.jp


Q. JIS X 0213 って何?

 JIS X 0208 の後継規格で、第三水準・第四水準漢字などが追加されました。2000 年に制定されたので JIS2000 などと呼ぶ人もいます。正式な規格の番号は JIS X 0213:2000 です。この規格はさらに 2004 年に改定されて JIS X 0213:2004 となりました。変更点は、漢字 168 文字の例示図形の変更、10 文字の UCS 互換文字の追加などです。これらは全て 1 面のみに影響します。コード変換方式などは変わっていません。

Q. JIS X 0208 って何?

 いわゆる JIS 漢字第一水準・第二水準漢字を定義した文字の表です。

Q. JIS X 0212 って何?

 いわゆる補助漢字です。

Q. JIS X 0213 のコード表を見せてください

Q. JIS X 0213 の文字をコード化して使用するときの表現方法

 規格では、面区点による表現を用いています。その他には、JIS コードによる表現、EUC による表現、SJIS による表現があります。

Q. 面句点による表現とは?

 JIS X 0213 の規格で用いられている表現です。区と点はそれぞれ 1〜94 までの値をとることができ、組み合わせて使用します。たとえば「あ」は、4区2点となります。「面」は、JIS X 0213 で新たに追加された指定方法で、現在のところ1面と2面が定義されています。1面は JIS X 0208 ですでに使用されていた空間、2面は新しく追加された空間です。したがって、「あ」は1面4区2点となります。なお、JIS X 0213 では1面、2面の両方に文字を追加しています。

Q. JIS コード表現とは?

 これは、7 bit だけを使って文字をあらわすというコードです。区点番号をこのコードに変換するには、区と点番号それぞれに 0x20 を加えます。例えば、「あ」は 0x2422 という JIS コードになります。

Q. EUC による表現とは?

 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 の変換ルーチンが複雑化しました)。

Q. SJIS による表現とは?

 DOS や Windows では、漢字は Shift JIS で扱っています。この Shift JIS という方式は、JIS コードを文字どおり Shift として扱う方式です。つまり JIS コードの 0x2121-0x7e7e の範囲のコードを次の表の1面と書いてある領域にそのまま順番に対応づけて表現します。

SJIS 表現可能範囲
第一バイト第二バイト文字数備考
0x81-0x9F0x40-0x7E,0x80-0xFC5828JIS X 0213 1面
0xE0-0xEF0x40-0x7E,0x80-0xFC3008
0xF0-0xFC0x40-0x7E,0x80-0xFC2444JIS X 0213 2面

 今回の JIS X 0213 では、面が 2 つ定義されました。1面は今までの JIS X 0208 と同じ領域、そして 2面が新しく漢字用に新設された領域です。この 2面は従来拡張領域とされてきた第一バイト 0xF0-0xFC の領域にマップします。しかし一つ問題があります。2面は EUC との兼ね合いから 1, 3〜5, 8, 12〜15, 78〜94区という非連続な領域が使用されているので、このままではうまく対応づけできません。そこで、2面は下の表にある対応で変換することになりました。この結果、JIS X 0213 を SJIS で表現したときには、文字コードの順番が保存されなくなることがあります。

2面の対応表
第二\第一
バイト
0xF00xF10xF20xF30xF40xF50xF60xF70xF80xF90xFA0xFB0xFC
0x40〜0x9E13513157981838587899193
0x9F〜0xFC841214788082848688909294


表紙 - 著作権 - 注意事項 - リンクについて - 404 エラーについて
(c)2000,2002,2005 seclan. All rights reserved.