ISO/IEC 2022: 多言語文字符号化の国際規格
ISO/IEC 2022(旧称
ISO 2022)は、コンピュータで
文字を扱うための国際規格です。7
ビットまたは8
ビットの符号を使って
文字を表現する技術と、複数の
文字集合を一つの符号化方式にまとめる技術を定めています。JIS X 0202やECMA-35といった対応規格も存在します。
歴史
コンピュータが
文字情報を扱うようになってから、様々な
言語に対応した
文字符号化が開発されてきました。しかし、複数の
文字集合が混在すると、情報交換に問題が発生します。ISO/IEC 2022は、この問題を解決するために開発された規格で、複数の
文字集合を統一的に扱うための仕組みを提供します。
初期の
ASCIIは7
ビットで、表現できる
文字数が限られていました。
ISO/IEC 646|ISO_IEC 646では、国ごとに一部の
文字を置き換える仕組みが導入されましたが、多くの
言語の
文字を表現するには不十分でした。そこで、8
ビット符号に対応したISO/IEC 4873が制定され、さらに
ISO/IEC 8859|ISO_IEC 8859シリーズへと発展していきました。
東アジア言語のように、8
ビットでは表現しきれない
文字数を持つ
言語に対しては、2バイト以上の
文字集合が必要となり、ISO/IEC 2022はこのような多様な
文字集合を扱うための技術基盤を提供しています。
符号表の構造
ISO/IEC 2022は、
文字を表現する領域と制御機能に使う領域に符号表を分割しています。7
ビット符号では、制御
文字基本集合(C0)と図形
文字集合(GL)の領域を持ち、8
ビット符号では、さらに制御
文字補助集合(C1)と図形
文字集合(GR)の領域が追加されます。マルチバイト
文字集合では、複数のバイトを使って1
文字を符号化します。例えば、94n
文字集合では2バイトで8836
文字、3バイトで830584
文字を表現できます。
文字の位置は、行列や区点で指定されます。
制御機能
ISO/IEC 2022では、
文字集合の選択や切り替えなどの制御機能があります。7
ビット符号ではESCAPEシーケンス(エスケープ
文字で始まる2~4バイトの制御コード)、8
ビット符号ではC1制御
文字も使用されます。データの解釈は、最後に適用された制御機能に依存するため、データの先頭から順番に処理する必要があります。
文字集合の選択
文字集合を選択するには、「指示」と「呼び出し」の2段階の手順が必要です。4つのバッファ(G0~G3)があり、指示によって
文字集合をバッファに割り当て、呼び出しによってバッファを符号表の領域に関連付けます。呼び出しには、ロッキングシフト(一度呼び出された状態が継続)とシングルシフト(直後の
文字のみ呼び出された状態)があります。
ISO国際登録簿
ISO/IEC 2022は、具体的な符号化
文字集合を規定するものではありません。そのため、
エスケープシーケンスと
文字集合の対応関係を定めたISO国際登録簿が存在します。登録申請は、ISO/IECの技術委員会、作業グループ、会員団体、関連国際機関などから行うことができます。登録事務局は、日本の
情報処理学会情報規格調査会が担当しています。
応用例
ISO/IEC 2022の仕組みは、様々な符号化方式で利用されています。代表的な例として、日本語
電子メール用の
ISO-2022-JP、
UNIX環境で使われる
EUC-JP、中国の
GB 2312(EUC-CN)、韓国のEUC-KRなどがあります。また、
ISO/IEC 8859|ISO_IEC 8859シリーズもISO/IEC 2022の構造に基づいています。
ISO-2022-JPは、日本語
電子メールなどで広く使われています。7
ビット符号で、
JIS X 0208の
文字集合を使用します。空白や制御
文字の使用、行末での
ASCIIへの復帰など、いくつかの制約があります。RFC 1468で規定されています。
EUCは、ISO/IEC 2022に準拠した8
ビット符号です。アナウンス機能は省略され、
文字集合の指示と呼び出しは固定的に行われます。
EUC-JP、EUC-CN、EUC-KRなどがあります。ベンダ独自の拡張も存在するため、厳密にはISO/IEC 2022に完全に準拠しているとは限りません。
「拡張
ASCII」は、
ASCIIと上位互換性を持つ8
ビット符号のシングルバイト
文字集合です。ISO/IEC 4873に準拠した符号表を使用します。
ISO/IEC 8859|ISO_IEC 8859シリーズなどが含まれます。
その他
V
ISCII(
ベトナム語)、KOI8系(
キリル文字)、
MS-DOS/Windowsのコードページ、Compound Text Encoding (CTEXT)なども、ISO/IEC 2022の機構を利用した、もしくは拡張した符号化方式です。
まとめ
ISO/IEC 2022は、多様な
文字集合を統一的に扱うための重要な国際規格です。その仕組みは、多くの符号化方式の基礎となっていますが、実装には様々なバリエーションが存在することに注意が必要です。