日本工業規格が定めた日本語の文字コード体系
JISコードとは、日本工業規格(JIS=Japanese Industrial Standards)が定めた、日本語の文字に番号(コード)を割り当てる決まりです。ASCIIが英数字だけを対象にしているのに対し、JISコードはひらがな・カタカナ・漢字を含む日本語を扱えるように作られました。
身近な例で言うと、国が決めた「漢字の背番号一覧」のようなものです。日本中のコンピュータが同じ番号で同じ漢字を指せるよう、国の規格として番号付けのルールを統一しました。これにより、ある会社が作った日本語の文書を別のメーカーのパソコンでも正しく表示できます。
JISコードは主に2つの規格から成り立っています。
・JIS X 0201:英数字・記号・半角カタカナを1バイトで表す
・JIS X 0208:ひらがな・カタカナ・漢字を2バイトで表す
上の図解は、この2つがそれぞれどんな文字を担当するかをまとめたものです。
JISコードの中心となる2つの規格は「1文字に何バイト使うか」「どんな文字を担当するか」で役割が分かれています。
| JIS X 0201 | JIS X 0208 | |
|---|---|---|
| 1文字のバイト数 | 1バイト | 2バイト |
| 扱える文字数 | 約256文字 | 約6,800文字 |
| 対象の文字 | 英数字・記号・半角カナ | かな・漢字・全角記号 |
| 漢字 | 扱えない | 第1・第2水準を収録 |
JIS X 0201は1バイト(8ビット=256通り)しか使わないため漢字は扱えませんが、半角カタカナを含むので少ない容量で日本語の音を表せます。一方JIS X 0208は2バイトを組み合わせ、漢字を以下のように整理して収録しています。
・第1水準漢字:日常的によく使う約3,000字(音読みの五十音順に並ぶ)
・第2水準漢字:それ以外の約3,400字(部首・画数順に並ぶ)
・非漢字:ひらがな・カタカナ・各種記号・ギリシャ文字など
JIS X 0208では文字の位置を「区点コード」=区(行)と点(列)の番号で指定します。区点番号を一定のルールでバイト値に変換したものがJISコードです。「0201=1バイト、0208=2バイトで漢字対応」という対応関係を押さえておくとよいでしょう。
JISコードを実際の通信や保存で使うときの代表的な形式が「ISO-2022-JP」と呼ばれるエンコーディングで、特に電子メールの日本語で広く使われてきました。一般に「JISコード(メール用)」と言うとこの方式を指すことが多いです。
電子メールでJISコードが選ばれた理由は「7ビットしか通さない古い通信経路でも安全に届くから」です。昔のメールの仕組みは1バイトのうち7ビット分(0〜127)しか確実に届かない前提でした。ISO-2022-JPは8ビット目を使わずに日本語を表すよう工夫されており、途中で8ビット目が落とされても文字が壊れにくいのです。
このとき重要なのが「エスケープシーケンス」=特殊な切り替え記号です。
・英数字モードと漢字モードを切り替える合図を文中に埋め込む
・受け取った側はその合図を見て「ここから先は2バイトの漢字」と判断する
・1バイト文字と2バイト文字を、同じ7ビットの通り道で混在させられる
身近な例で言うと、会話の途中で「ここから英語ね」「ここから日本語ね」と言葉を切り替えるのに似ています。現在はメールでもUTF-8が主流になりましたが、「JISコード(ISO-2022-JP)=メール用・7ビット・エスケープで切り替え」という性質を覚えておくとよいでしょう。