Extended Unix Code (EUC) について
Extended Unix Code(EUC)は、1980年代に
UNIXシステムを国際化する過程で生まれた、多言語対応のための
文字コード符号化方式です。
AT&Tが中心となり開発され、
UNIXが世界各地に展開される中で、各国の言語固有の文字を扱えるように設計されました。
EUCの基本構造
EUCは、国際機能と各国語機能という二つの側面を持ちます。国際機能では、基本コードと3つの拡張コードを組み合わせた4つのコードセットを使用します。これにより、様々な言語の文字を効率的に扱えるように設計されました。
EUCには、バイト単位の可変長コードである「パックフォーマット」と、2バイト固定長の「完全2バイトフォーマット」の2種類がありますが、一般的にEUCという場合は、情報交換用のパックフォーマットを指します。
パックフォーマットは、
ISO/IEC 2022|ISO_IEC 2022を基盤としており、以下のような特徴を持ちます。
G0にASCII(主コードセット)を割り当てます。
G1-G3に各言語の文字集合(補助コードセット1-3)を暗黙的に指示します。エスケープシーケンスは使用しません。
GLにG0を、GRにG1を暗黙的に呼び出します。G2/G3はシングルシフト2/3によってGRに呼び出します。ロッキングシフトは用いません。
補助コードセットが`0x80`から`0xFF`の範囲で表されるため、主コードセットと衝突することがありません。これにより、Shift_JISのように2バイト目が`0x5C`になることによる問題を回避できます。
各国語機能では、各言語に対応したEUCが定義されており、それぞれ「〇〇語EUC」や「〇〇語版EUC」のように呼ばれます。
各言語のEUC
日本語EUC
日本語EUCは、G1-G3にJIS(
日本産業規格)の
文字集合を割り当てています。一般的に日本語EUCという場合は、
JIS X 0208ベースのものが指され、
EUC-JPとも呼ばれます。
JIS X 0208ベース (EUC-JP)
1986年に
AT&Tによって定義され、
UNIXの標準的な日本語コードとして広く利用されてきました。
G0: ASCII
G1:
JIS X 0208
G2: JIS X 0201 カタカナ
G3:
JIS X 0212 補助漢字
G2とG3を使用しない場合は、JIS X 0208:1997の「国際基準版・漢字用8ビット符号」と同一になります。
JIS X 0212は実装されていないことも多く、通信などで用いる際は注意が必要です。
JIS X 0213ベース (EUC-JIS-2004)
JIS X 0213:2004に基づいたもので、
EUC-JIS-2004と呼ばれます。
フリー/オープンソースソフトウェアなどで使用されることがあります。
G0:
ASCII
G1: JIS X 0213 1面
G2:
JIS X 0201 カタカナ
G3: JIS X 0213 2面
韓国語EUC (EUC-KR)
1987年にAT&Tユニックス・パシフィックによって規定され、1992年に韓国標準協会によって標準化されました。EUC-KRとも呼ばれます。
G0:
ASCII
G1: KS X 1001 (KS C 5601)
G2: なし
G3: なし
EUC-KRを拡張したUHC (Unified Hangul Code) という体系も存在します。
簡体字中国語EUC (EUC-CN)
中国で広く使用されていました。EUC-CNとも呼ばれます。
G0: ASCII
G1:
GB 2312
G2: なし
G3: なし
EUC-CNを拡張したGBKという体系も存在します。
繁体字中国語EUC (EUC-TW)
EUC-TWとも呼ばれます。台湾の規格ですが、あまり使われず、一般にはBig5が使われます。
G0:
ASCII
G1: CNS 11643 第一字面
G2:
CNS 11643 第二-第十六字面
G3: なし
G2の文字は以下の4バイトで構成されます。
シングルシフト2 (0x8E)
字面を選択するコード(0xA2-0xB0)
文字の第1バイト(0xA1-0xFE)
文字の第2バイト(0xA1-0xFE)
EUCの課題
EUCの利用は、すべての
文字コードを包含したり、複数の
文字コードを切り替えて表示する機能の必要性を否定する場合があります。そのため、多くの文字を表示する流れに対して後ろ向きであった点が課題として挙げられます。ただし、この点はEUCという
文字コード自体の課題ではなく、EUCを利用するプログラマーやユーザーの課題であると言えます。
関連項目
ISO/IEC 2022|ISO_IEC 2022
ISO-2022-JP
*
ISO 3166