{{category 仕様}} !!概要 JIS X 0208は、日本の文字コード規格で、JIS X 0213の元になったものです。 規格名称を「7ビット及び8ビットの2バイト情報交換用符号化漢字集合」といいます。 [[ISO/IEC 2022]]に整合的な94×94文字の2バイト符号化文字集合として設計されています。 漢字をはじめ、平仮名、片仮名、ラテン文字、ギリシャ文字、キリル文字、数字、記号類を含む6,879文字のコードを定めています。 1978年の制定以降、日本語に対応する情報機器において極めて広く利用されてきました。ただし、漢字においても漢字以外においても文字が足りない、現代日本のテキストを符号化するのに不十分であるという問題があり、拡張規格のJIS X 0213の制定につながりました。 !!制定・改訂履歴 *1978年: 初版制定。(当初の規格番号はC6226) *1983年: 改正。記号類の追加のほか、一部の漢字の符号位置の入れ替え、字体の簡略化。 *1990年: 改正。漢字を2文字追加。 *1997年: 改正。コード表には変更を加えず、符号位置に対応する文字の明確化や漢字の典拠調査を行う大規模な改正。包摂規準の明確化、[シフトJIS|http://x0213.org/wiki/wiki.cgi?page=Shift%5FJIS]の規定、文字名の規定(Unicodeとの変換表に相当)等。 *2012年: 改正。2010年の常用漢字改正による参考情報の更新。技術的な変更はなし。 !!符号化方式 運用方法(いわゆる文字符号化方式)として、JIS X 0208を単体で用いる方式(すなわち2バイト固定長)のほか、JIS X 0201ならびに[[ISO/IEC 646]]国際基準版(ASCIIと同等)と同時に用いる方式(すなわち1バイトと2バイトが混在)を定義しています。また、附属書において[[シフトJIS|Shift_JIS]]とISO-2022-JP (RFC1468)を取り込んでいます。 よく利用される符号化方式として下記の3つがあります。 *シフトJIS (Shift_JIS): JIS X 0201の隙間にJIS X 0208を変形のうえ詰め込んだコード。JIS X 0208の附属書1。 *EUC-JP: ISO/IEC 2022の8ビット符号表のGL領域にASCII、GR領域にJIS X 0208を呼び出した状態のコード。オプションでJIS X 0201片仮名、JIS X 0212を用いることも。ASCIIとJIS X 0208だけの場合は、JIS X 0208で規定される「国際基準版・漢字用8ビット符号」に相当。 *ISO-2022-JP: ASCIIとJIS X 0208をエスケープシーケンスで切り替える7ビットのコード。 規格本体で規定される6種類の符号化方式は下記の通りです。これらもJIS X 0213に受け継がれています。 *漢字用7ビット符号 *漢字用8ビット符号 *国際基準版・漢字用7ビット符号 - [[ISO/IEC 646]]国際基準版と漢字集合をSI/SOで切り替え *国際基準版・漢字用8ビット符号 - [[ISO/IEC 646]]国際基準版をGLに、漢字集合をGRに (EUC-JPとほぼ同じ) *ラテン文字・漢字用7ビット符号 - JIS X 0201ラテン文字集合と漢字集合をSI/SOで切り替え *ラテン文字・漢字用8ビット符号 - JIS X 0201ラテン文字集合をGLに、漢字集合をGRに !!JIS X 0213との関係 上記の符号化方式それぞれに対応した拡張版の符号化方式がJIS X 0213でも用意されています。附属書にはShift_JIS-2004, EUC-JIS-2004, ISO-2022-JP-2004が定義されています。 JIS X 0213はJIS X 0208:1997がベースになっています。 JIS X 0213の漢字集合1面は、JIS X 0208の上位互換として設計されています。 !!Unicode (ISO/IEC 10646 UCS)との関係 JIS X 0208はUnicodeのCJK統合漢字を最初に作る際に参照された原規格のひとつです。 JIS X 0208の各文字に対応するUnicodeの文字は、JIS X 0208の規格の中に、 ISO/IEC 10646 UCS (Unicodeと同じ)の文字名を参照する形で規定されています。 これに従ってUnicodeとの間でコード変換ができます。 この方法はJIS X 0201やISO/IEC 646、ISO/IEC 8859等と同じです。 機械可読な変換表は、[JIS X 0213とUnicodeのコード変換表|http://x0213.org/codetable/]が 使えます。JIS X 0213はJIS X 0208の上位互換なので、ここにある対応表の中から JIS X 0213で追加された文字 ([2000]及び[2004] とマークされた行) を 読み飛ばすと、JIS X 0208の変換表として使えます。 なお、いわゆる「CP932」などのベンダ実装の変換表は、UnicodeとJISの対応関係に誤りが幾つかあるので不適切です。 例えば、JISの波ダッシュ(文字名WAVE DASH、SJIS 0x8160)はUnicodeのU+301C (文字名WAVE DASH) に変換するのが正しいですが、「CP932」と呼ばれるものでは、 誤ってU+FF5E (FULLWIDTH TILDE。EUC-JP等のチルダを重複符号化した文字コードとの間の往復変換のための救済用の符号位置)に 対応づける実装が存在します。このような実装は文字化けの元になっており、波ダッシュ問題として知られています。 !!JIS X 0208についての誤解 JIS X 0208は文字の集合だけを定めていて実際にコンピュータ上で表現される符号化形式は定めていないという誤解がたまにあります。また、JIS X 0208が定めるのは各文字の整数としての区点番号だけだという誤解もあります。実際には区点番号は符号表の座標を指すための番号であり、各区点には2バイトのビット組合せが一意に対応します。 正しくは、JIS X 0208は各文字に対して2バイトのビット組合せを定義しています。各バイトは7ビットであり、第8ビットは、8ビット符号表のGL領域(0x20-0x7F)に呼び出したときには0、GR領域(0xA0-0xFF)のときは1となります。また、[[シフトJIS|Shift_JIS]]はJIS X 0208の符号化表現を計算によって変形したうえでJIS X 0201と組み合わせた運用方式(符号化方式)です。 !!参照情報 JIS X 0208のコード表は、[ISO-IRのサイト|https://itscj.ipsj.or.jp/english/vbcqpr00000004qn-att/ISO-IR.pdf]でPDFファイルを参照できます(番号[168|https://itscj.ipsj.or.jp/ir/168.pdf])。 //https://www.itscj-ipsj.jp/custom_contents/cms/linkfile/ISO-IR.pdf //https://www.itscj-ipsj.jp/ir/168.pdf 規格票は[JSA Webdesk|https://webdesk.jsa.or.jp/]で購入できます。 !!参考 * [プログラマのための文字コード技術入門|https://www.amazon.co.jp/gp/product/477414164X/ref=as_li_tf_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=477414164X&linkCode=as2&tag=x0213-22] 第3章 !!関連項目 *JIS X 0213 - この規格の拡張版。 *Shift_JIS - JIS X 0201とこの規格を同時に用いる符号化方式の一つ。 *EUC-JP - ASCIIとこの規格を同時に用いる符号化方式の一つ。 *ISO-2022-JP - ASCII/JIS X 0201とこの規格を同時に用いる符号化方式の一つ。