今回はJIS X 0212について紹介します。

Ikukunitama-jinja Shintô Shrine - Shime-bashira
 復習ですが、JIS X 0208は、日本人が一般的に使用する漢字を、94区94点の区点コードで符号化文字集合という側面と、その字を0x2121〜0x7E7Eまでの16ビットコード(各バイトの最大ビットは空けるので実質14ビットコード)で表現する文字符号化方式という側面の2つがあります。JIS X 0208に含まれる漢字(亜から熙までの漢字の他に全角カタカナ、全角英数字、ひらがな、○×△などの非漢字も含む)をJIS基本漢字とも言います。

JIS基本漢字 - CyberLibrarian

 これに対してJIS X 0212は、JIS X 0208とまったく同じ仕組みで、JIS X 0212に収められなかった字を収録したものです。よって、すべての字は94区94点の区点コードで整理され、0x2121〜0x7E7Eの16ビットコード(14ビットコード)を使って使うことも出来ます。JIS X 0212に含まれる漢字(丂から龥までの漢字の他に著作権記号©、登録商標記号®、ナンバー記号№、ファイナルシグマςなどの非漢字も含む)をJIS補助漢字とも言います。

JIS補助漢字(全コード表) - CyberLibrarian

 面白いのが、封筒の封緘時につかうカタカナのメに似たシメと言う字で、JIS X 0208では非漢字領域1区26点に〆という字が、JIS X 0212では漢字領域16区17点に乄という字が収録されています。規格の例示字形としてはJIS X 0208の方がくるんとしたαのような字、JIS X 0212の方がXのようなバッテン形になっていますが、この違いに意味がなく、両方同じ字です。これは、定義によって漢字であるともないとも言える字ですが、JIS X 0208の非漢字としてすでに入っていた字を、JIS X 0212の収録時に誤って漢字領域に入れてしまったため、同じ字が複数の区点箇所に現れています。これを重複符号化といい、本来あってはならないことです。

 JIS X 0212はJIS X 0208に含まれていない字を持つ集合で、JIS X 0212を使うときは必ずJIS X 0208と一緒に使うことが定められています。©、®、№、ς のような非漢字は重ならないようにJIS X 0208の空き領域に割り当てられていますが、漢字は重なっています。JIS X 0208の亜とJIS X 0212の丂は両方とも1区1点です。ですから、JIS X 0208とJIS X 0212を同時に使う場合は、必ず面切り替えの仕組みが必要になります。

 ISO 2022の仕組みに準拠しながら、エスケープ シーケンスを使ってコード表を切り替えるのがISO-2022-JP-1およびISO-2022-JP-2です。これはISO-2022-JPの仕組みを拡張したものです。PerlではISO-2022-JP-1をサポートしています。この仕組みは7ビットクリーンですが、モードを持ちます。やはりISO 2022の仕組みに準拠しながら、シングルシフト(1文字ごとにコード表を切り替える)の仕組みを使うのがEUC-JPです。この仕組みはモードを持ちませんが、8ビット文字コードになります。この2つについては次回以降解説します。

 JIS X 0212は日本国内ではあまり普及せず、JIS X 0208を拡張した文字コードの標準としてはJIS X 0213(JIS拡張漢字)にその道を譲りました。しかし、JIS X 0212はUnicodeの文字レパートリーとして組み込まれたので、これからも参照され続けます。UnicodeにはJIS X 0208の〆とJIS X 0212の乄が両方収録されています。