JIS X 0208

世界で最初に複数バイトの文字コードだそうです。JIS X 0208はそれ自体がISO 2022準拠のエンコーディングスキームとして捉えることができますが多くの場合日本語エンコーディングスキームの文字レパートリーを構成する符号化文字集合として使用されています。

ISO 2022に準拠して、94文字のコード表を94枚もち、これらをGL/GR領域呼び出します。ひらがな・カタカナ・JIS第一水準・JIS第二水準といった基本的な漢字に加え、ローマ数字・ギリシャ文字・記号等も含み日常的な日本語はほとんどカバーしていると言えます。

JIS X 0208では、これらのいわゆる漢字(記号等も含む)を2バイトで表現し、これらを区と点で表現するのが特徴です。ここで、「区」とは第一バイト、「点」とは第二バイトを表します。例えば、「亜」の文字は16区/1点と表現しこれをGL領域に呼び出した場合、0x3020のコードをとります。

JIS X 0208ではこの区点毎にどのような文字種を収録するかがを下記の表のように定めています。

文字種
1〜2区記号
3区数字・ローマ字
4区ひらがな
5区カタカナ
6〜7区ギリシャ・キリル文字
8区罫線
9〜15区未定義
16〜47区第一水準漢字
48〜84区第二水準漢字
85〜94区未定義

このうち、9〜15区・85〜94区は未定義となっていますが、OSやメーカーが独自に拡張した文字割り当てている場合がありますので注意が必要となります。

歴史的経緯

JIX X 0208はもともとJIS X 0201の上位互換となることを想定されていた(1区にJIS X 0201のアルファベット部分、2区にJIS X 0201のカタカナ部分を収録)らしいのですが、空白の位置・カタカナの濁音を1文字で表現するなどそのまま移行することはできませんでした。

JIX X 0208は制定以来改訂がなされており、正確には改訂内容を示す年度を付加してJIS X 0208-1978、JIS X 0208-1983、JIS X 0208:1997と呼びます。このうち、1983年の改訂では1978年版と互換性のないコードが割り当てられてしまい大きな混乱を招いています。しかも、78年度版とは全く違う文字コードということで83年度版には違うエスケーシーケンスが割り振られてしまい例えば電子メールなどで使用されているISO-2022-JPは非常に複雑なエスケープシーケンスを使うことになってしまいました。

JIS X 0212

JIS X 0208に含まれていない文字を補うため1990年に制定されました。そのため、JIS X 0208とセットで使うことが想定され「補助漢字セット」とも呼ばれます。

JIS X 0213

JIS X 0213もやはりJIS X 0208を補完する目的として2000年に制定されています。JIS X 0208に加えて第三水準・第四水準の漢字を収録しています。一部の漢字がJIS X 0212と重複し、同じ漢字に複数のコードが存在してしまうためJIS X 0212と併用することはできません。

第三水準の文字は、JIS X 0208の空き領域に、第四水準の文字はJIS X 0212の空き領域に格納しています。ただし、第四水準の漢字では、JIS X 0208で二次元表と考えた「区点」に加え、あらたに「面」の概念を導入してコード表を三次元として定義しています。

注目は、13区。先にも書きましたがJIS X 0208ではOSやベンダに応じた機種依存文字がマップされ、例えばWindowsとMacOSとの間で互換性のない文字が収録されて文字化けをおこすことで有名です。この状況を受けてか、JIS X 0213ではJIS X 0208では未使用だった13区に「NEC特殊文字」(丸つき数字など)を収録しました。これで、双方がJIS X 0213対応の環境であれば文字化けをおこすことはなくなるはず(なんですが実際のところはまだ普及はしていないよう)です。