Extended Unix Code
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-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ビット符号」と同一となる。
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を利用しているプログラマ、利用者の課題である。