ISO/IEC_2022
[Wikipedia|▼Menu]

ISO/IEC 2022(旧称 ISO 2022)は、

文字集合を7ビット符号または8ビット符号で表現するための技術、および

複数の文字集合を単一の文字符号化方式に含める技術

を規定するISO規格である。JISの対応規格はJIS X 0202 「情報技術-文字符号の構造及び拡張法」[1]Ecma Internationalの対応規格はECMA-35。

ISO/IEC 2022 の符号化方式は、一般に、1文字に1バイトか2バイト以上を使う可変長の文字符号化方式である。いくつかの符号化表現がISO/IEC 2022の機構を使っている。たとえば、ISO-2022-JPは日本語で広く使われている符号化表現であり、いわゆる「JISコード」というのもこれを指すことが一般的である。
歴史

コンピュータによる文字情報処理が可能になって以来、さまざまな言語のために、コンピュータ上で文字データを表現したいという要求を満たすため、多くの符号化文字集合が作られてきた。複数の文字集合の存在は、文字集合があらかじめ当事者間で合意されていなければ情報交換に支障をきたす。また、情報交換中に複数の文字集合を利用することも困難である。ISO/IEC 2022は、複数の文字集合を単一の文字符号化方式の下で利用できるようにするための技術として開発された。

ASCIIは7ビットのラテンアルファベット文字集合であり、最大94文字の図形文字 (空白文字を除く) しか収容できない。ISO/IEC 646 (1967年初版)[2]では、図形文字の収容領域を ASCII に倣いつつ、12個の符号位置を各国の国内使用目的のために置き換えてよいこととし、さらにレパートリとして国別の文字集合を定義するという方法をとった。

ISO/IEC 2022 (1973年初版)[3] は、ISO/IEC 646 に準拠した複数の符号表を切り替えて多言語の処理を実現することを目的に制定された。しかし、ISO/IEC 646 の方式では、ラテンアルファベットの範囲に限ってさえも、多数のダイアクリティカルマーク付き文字や、言語ごとに必要とされる記号類などを十分に収容することができなかった。このため、ISO/IEC 646 と互換性を保ちつつ8ビット符号 を採用した ISO/IEC 4873 (1979年初版)[4] が制定された。特にヨーロッパでは1980年代に入って多言語のテキストデータを共通の仕様の下に処理できるようにしたいという要求が高まっており[5]、1987年からは ISO/IEC 4873 に対応した ISO/IEC 8859シリーズが制定されはじめた。ISO/IEC 8859シリーズでは、新たに96文字の図形文字を収容可能にし、さらにレパートリとして言語別の文字集合を定義するという方法をとった。

また、ギリシア語ロシア語アラビア語、もしくはヘブライ語のような、ラテンアルファベットに基づかない多くの言語の文字も、歴史的に ISO/IEC 4873 に準拠した俗に言う「拡張ASCII」を用いてコンピュータ上で表現されてきたものが多い (一部は後に ISO/IEC 8859 シリーズにも規定されたほか、多くの国・地域の符号化文字集合の規格が ISO/IEC 4873 に準拠している)。さらに、東アジア言語、とくに中国語日本語、および韓国語の表記は、8ビットの1バイトで表現可能な範囲をはるかに超えた数の文字を使い、言語別の2バイト文字集合によって初めてコンピュータ上で表現された。ISO/IEC 2022 は、これら複数の文字集合を単一の符号化方式の下に扱うことを可能にしている。

ISO/IEC 2022に基づく符号化表現は現在も広く使われている。たとえば日本語電子メール用のISO-2022-JPや、UNIX環境で使われるEUC-JP、中国のGB 2312ことEUC-CN、韓国のEUC-KRなどがそうである。ISO/IEC 8859シリーズもISO/IEC 2022の構造にしたがっている。一方で、この規格に則らない符号化方式、たとえばShift_JISや台湾のBig5などもまた広く使われている。
第2次規格以降の主な改正点

第2次規格以降の主な改正点には次のようなものがある。なお、用語については当項目でこの後解説する。
第2次規格


8ビット符号に対応した。

バッファG2およびG3を新設した。

マルチバイト文字集合に対応した。

第3次規格


96文字集合および96n文字集合に対応した。

(JISのみ)この版からJIS X 0201を拡張する規格からISO/IEC 646を拡張する規格になったため、国際一致規格
になった。

第4次規格


7ビット符号中心の記述から8ビット符号中心の記述に改められた。

#表1に、各版ごとの規格番号、制定日などを示す。

表1 ISO/IEC 2022 の各版ごとの規格番号・制定日等版ISO規格番号ISO制定・改正日JIS番号JIS制定・改正日
第1次規格ISO 2022:19731973年5月制定JIS C 6228:19751975年3月1日制定
第2次規格ISO 2022:19821982年12月改正JIS C 6228:1984
1984年11月1日改正
第3次規格ISO 2022:19861986年5月改正JIS X 0202:19911991年1月1日改正
第4次規格ISO/IEC 2022:19941994年12月改正JIS X 0202:19981998年1月20日改正
※ 1987年3月1日部門X(情報処理)の新設に伴いJIS X 0202:1984 と改称された。
詳細
符号表の構造

ISO/IEC 2022は当初ISO/IEC 646に基づいた7ビット符号であったので、多くのISO/IEC 646の特性を持ち合わせている。7ビット符号では、各バイトの最上位桁ビットは使われない。これにより、7ビットの伝送路を通してISO/IEC 2022を伝送することは(ISO/IEC 646と同様)容易である。8ビット符号では、最上位桁ビットを GL領域とGR領域 (後述) の区別に用いるが、文字集合中の文字を区別するのには用いない。この特性はEUC符号化の基本原理にも利用されている。

ISO/IEC 2022の符号表は、表示や印字される文字 (図形文字) の領域と、制御機能に使う文字 (制御文字) の領域に分けられている。7ビット符号は、32個の制御文字基本集合の領域 (C0) と、94個または96個の図形文字集合の領域 (GL領域) を持つ。8ビット符号は、これに加えて32個の制御文字補助集合の領域 (C1) と、94個または96個の図形文字集合の領域 (GR領域) を持つ。#図1に、7ビットと8ビットの符号表の構造を示す。符号表上の文字の位置は、表の行および列で表す。たとえばASCIIの「Z」という文字は行列で 05/10 にあたり、符号のバイトの値としては16進数で 5A (10進数で 90) となる。

複数バイトの文字集合では、複数のバイトで1文字を符号化する。たとえば94n文字集合では、2バイトを使って8836個(94×94)までの文字を表現できる。そして、3バイトを使って830584個(94×94×94)までの文字を表現できる。2バイト文字集合では、各文字の符号位置は区点 (3バイト文字集合の場合は面区点) で(面および)区および区内の位置を指定する。つまり、94×94文字集合の場合、区および点のそれぞれが 1 から 94 の範囲をとるので、それぞれを1バイトずつGL領域の 02/01 から 07/14 (GR領域ならば 10/01 から 15/14) に対応させて2バイトとする。たとえば、JIS X 0208 の「字」は 27区90点 (27-90) なので、GL領域では 03/11 07/10、GR領域では 11/11 15/10 と表現される。

図1 ISO/IEC 2022の符号表の構造

(a) 7ビット符号 行

列 00010203040506070809
00
[b]
01
02
03
04
05
06
07C0GLC1[d]
08
09
10
11[a]
12
13
14
15[c]

(b) 8ビット符号 行

列 00010203040506070809101112131415
00[b][e]
01
02
03
04
05
06
07C0GLC1GR
08
09
10
11[a]
12
13
14
15[c][e]

JIS X 0202:1998 を元に作成。

符号表上の文字の位置を行と列で示す。たとえば 01/11 (ESCAPE) は16進数値では 1B にあたる。

.mw-parser-output .citation{word-wrap:break-word}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}a  常に ESCAPE 制御文字。

b  GL領域に94文字集合が呼び出されているときは SPACE (空白文字) となる。

c  GL領域に94文字集合が呼び出されているときは DELETE 制御文字となる。

d  7ビット符号では、C1制御文字は実際には使用しない。代替のエスケープシーケンスで表す。

e  GR領域に94文字集合が呼び出されているときは、この2つの行列は使用しない。

制御機能

表2 ISO/IEC 2022 の制御機能 (抜粋)制御文字またはエスケープシーケンス説明略号

指示
01/11 02/01 I FtC0への制御機能集合の指示 (呼び出しを含む)CZD
01/11 02/02 I FtC1への制御機能集合の指示 (呼び出しを含む)C1D
01/11 02/08 I FtG0への94文字集合の指示GZD4
01/11 02/09 I FtG1への94文字集合の指示G1D4
01/11 02/10 I FtG2への94文字集合の指示G2D4
01/11 02/11 I FtG3への94文字集合の指示G3D4
01/11 02/13 I FtG1への96文字集合の指示G1D6
01/11 02/14 I FtG2への96文字集合の指示G2D6
01/11 02/15 I FtG3への96文字集合の指示G3D6
01/11 02/04 02/08 Ft
[a]G0への94n文字集合の指示GZDM4
01/11 02/04 02/09 FtG1への94n文字集合の指示G1DM4
01/11 02/04 02/10 FtG2への94n文字集合の指示G2DM4
01/11 02/04 02/11 FtG3への94n文字集合の指示G3DM4
01/11 02/04 02/13 FtG1への96n文字集合の指示G1DM6
01/11 02/04 02/14 FtG2への96n文字集合の指示G2DM6
01/11 02/04 02/15 FtG3への96n文字集合の指示G3DM6
01/11 02/05 I Ft他の符号化システムの指示DOCS
01/11 02/06 F[b]文字集合の改訂番号の識別IRR

呼び出し (シフト)
00/15GL領域へのG0の呼び出し[c]SI


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:91 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef