Extended Unix Code(EUC)は、UNIX上で使われてきた文字コードの符号化方式である。
などがある。
1980年代、UNIXを開発していたAT&Tはアメリカ合衆国以外の国へUNIXを展開するにあたって各国固有の要求に対応するため、UNIXシステムを世界共通の機能となる国際機能と、各国固有の処理に必要な機能となる各国語機能に分けて定義した。この国際機能において、1つの基本コードと3つの拡張コードから構成される4つのコードセットを使用できる文字コードをExtended UNIX Code (EUC; 拡張UNIXコード) として定義した。
厳密にはEUCのコード体系にはバイト単位の可変長コードである「パックフォーマット」と、2バイト固定長の「完全2バイトフォーマット」がある。前者は情報交換用、後者は内部処理用で、一般にEUCという場合前者を指す。ここでも前者について解説する。
EUCのパックフォーマットはISO/IEC 2022を基に、以下のようなサブセット化を行った体系である。
補助コードセットが0x80-0xFFの範囲で表されるため、主コードセットと衝突することがない。すなわちShift_JISにおける2バイト目が5C等になりうることによる問題が起きないというメリットがある。
各国向けに局所化した各国語機能のそれぞれの版について、日本語では「 - 語EUC」や「 - 語版EUC」のように呼ばれることが多い。
日本語EUCはG1-G3に日本産業規格 (JIS) の文字集合を割り当てている。
一般に日本語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は実装されていないことも多い。通信などで用いる場合はこの点に注意が必要である。
なお、G2とG3を使わない場合はJIS X 0208:1997の「国際基準版・漢字用8ビット符号」と同一となる。
JIS X 0213:2004ベースのものをEUC-JIS-2004という(2000年版はEUC-JISX0213)。JIS X 0213の附属書3に記載がある。フリー/オープンソースソフトウェアなどで使われていることがある。
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のことを指している場合が多い。
EUC-KRを拡張したUHC (Unified Hangul Code) という体系も存在する。
中国で広く使われていた。EUC-CNともいう。ここで、CN
は中国の国・地域コードであって、簡体字の用字系コード (Hans
) でも中国語の言語コード (zh
) でもない。単にGB 2312といった場合でも、文字集合としてのGB 2312でなく、EUC-CNのことを指している場合が多い。
EUC-CNを拡張したGBKという体系も存在する。
EUC-TWともいう。ここで、TW
は台湾の国・地域コードであって、繁体字の用字系コード (Hant
) でも中国語の言語コード (zh
) でもない。台湾の規格であるが、あまり使われておらず、一般にはBig5が使われる。
G2の文字は以下の4バイトで構成される。
EUCの利用は、すべての文字コードを包含したり、複数の文字コードを切り替えて表示する機能の必要性を否定する場合があり、多くの文字を表示する流れに対して後ろ向きであった点が課題である。これは、文字コード自体の課題ではなく、EUCを利用しているプログラマ、利用者の課題である。