Extended Unix Code

Extended Unix Code(EUC)は、UNIX上で使われてきた文字コードの符号化方式である。

日本語EUC
JIS X 0208ベース (EUC-JP)
JIS X 0213ベース (EUC-JIS-2004)
韓国語EUC (EUC-KR)
簡体字中国語EUC (EUC-CN)
繁体字中国語EUC (EUC-TW)
などがある。

 概要 
1980年代、UNIXを開発していたAT&Tはアメリカ合衆国以外の国へUNIXを展開するにあたって各国固有の要求に対応するため、UNIXシステムを世界共通の機能となる国際機能と、各国固有の処理に必要な機能となる各国語機能に分けて定義した。この国際機能において、1つの基本コードと3つの拡張コードから構成される4つのコードセットを使用できる文字コードをExtended UNIX Code (EUC; 拡張UNIXコード) として定義した。

厳密にはEUCのコード体系にはバイト単位の可変長コードである「パックフォーマット」と、2バイト固定長の「完全2バイトフォーマット」がある。前者は情報交換用、後者は内部処理用で、一般にEUCという場合前者を指す。ここでも前者について解説する。

EUCのパックフォーマットはISO/IEC 2022を基に、以下のようなサブセット化を行った体系である。

G0にASCII（主コードセット）を、G1-G3に各言語の文字集合（補助コードセット1-3）を暗黙に指示する。指示のエスケープシーケンスは用いない。
GLにG0を、GRにG1を暗黙に呼び出す。G2/G3はシングルシフト2/3によりGRに呼び出す。ロッキングシフトは用いない。

補助コードセットが0x80-0xFFの範囲で表されるため、主コードセットと衝突することがない。すなわちShift_JISにおける2バイト目が5C等になりうることによる問題が起きないというメリットがある。

各国向けに局所化した各国語機能のそれぞれの版について、日本語では「 - 語EUC」や「 - 語版EUC」のように呼ばれることが多い。

 日本語EUC 
日本語EUCはG1-G3に日本産業規格 (JIS) の文字集合を割り当てている。

 JIS X 0208ベース 

一般に日本語EUCという場合こちらを指す。EUC-JPともいう。ここで、JPは日本国を表す国・地域コードであって、日本語を表す言語コード (ja) でない。

1986年にAT&Tによって定義されて以来、UNIXの標準的な日本語コードとして広く使われてきた。1990年にJIS X 0212（補助漢字）が新たに策定されたが、1992年にUNIX Internationalが発行した『UNIX System V リリース 4 (SVR4) 日本語環境共通規約』において、JIS X 0201 カタカナとJIS X 0212 補助漢字は実装が必須ではないとされていた。このため、特にJIS X 0212は実装されていないことも多い。通信などで用いる場合はこの点に注意が必要である。

G0 - ASCII
G1 - JIS X 0208
G2 - JIS X 0201カタカナ
G3 - JIS X 0212補助漢字

なお、G2とG3を使わない場合はJIS X 0208:1997の「国際基準版・漢字用8ビット符号」と同一となる。

 JIS X 0213ベース 

JIS X 0213:2004ベースのものをEUC-JIS-2004という（2000年版はEUC-JISX0213）。JIS X 0213の附属書3に記載がある。フリー/オープンソースソフトウェアなどで使われていることがある。

G0 - ASCII
G1 - JIS X 0213 1面
G2 - JIS X 0201カタカナ
G3 - JIS X 0213 2面

 韓国語EUC 
1987年にAT&Tユニックス・パシフィックよりリリースされた Korean Application Environment Release 1.0 (KAE 1.0) で規定され、1992年に韓国標準協会によってKS X 2901（旧KS C 5861）『ハングルUNIXエンバイロメント』として標準化された。EUC-KRともいう。ここで、KRは韓国の国・地域コードであって、朝鮮語の言語コード (ko) ではない。単にKS C 5601といった場合でも、文字集合としてのKS C 5601でなく、EUC-KRのことを指している場合が多い。

G0 - ASCII
G1 - KS X 1001 (KS C 5601)
G2 - なし
G3 - なし

EUC-KRを拡張したUHC (Unified Hangul Code) という体系も存在する。

 簡体字中国語EUC 
中国で広く使われていた。EUC-CNともいう。ここで、CNは中国の国・地域コードであって、簡体字の用字系コード (Hans) でも中国語の言語コード (zh) でもない。単にGB 2312といった場合でも、文字集合としてのGB 2312でなく、EUC-CNのことを指している場合が多い。

G0 - ASCII
G1 - GB 2312
G2 - なし
G3 - なし

EUC-CNを拡張したGBKという体系も存在する。

 繁体字中国語EUC 
EUC-TWともいう。ここで、TWは台湾の国・地域コードであって、繁体字の用字系コード (Hant) でも中国語の言語コード (zh) でもない。台湾の規格であるが、あまり使われておらず、一般にはBig5が使われる。

G0 - ASCII
G1 - CNS 11643 第一字面
G2 - CNS 11643 第二-第十六字面
G3 - なし

G2の文字は以下の4バイトで構成される。
シングルシフト2 (0x8E)
字面を選択するコード(0xA2-0xB0)
文字の第1バイト(0xA1-0xFE)
文字の第2バイト(0xA1-0xFE)

 課題 

EUCの利用は、すべての文字コードを包含したり、複数の文字コードを切り替えて表示する機能の必要性を否定する場合があり、多くの文字を表示する流れに対して後ろ向きであった点が課題である。これは、文字コード自体の課題ではなく、EUCを利用しているプログラマ、利用者の課題である。

 関連項目 
 ISO/IEC 2022
 ISO-2022-JP
 ISO 3166

Category:文字コード