EUC-JP
読み:イーユースィージェイピー
外語:EUC-JP

 日本語向けのISO/IEC 2022のサブセットで8ビット符号の拡張法を用いている、EUCの一種。
目次

概要

用途
 UNIXなどで、日本語を表現するときに用いられる。
 最近のLinuxではUTF-8が使われ始めているが、古いUNIXシステムではEUC-JPが主流であった。

方法と集合
 EUC-JPはあくまで符号化方法(CES)であり、文字集合(CCS)の規定ではない。
 文字集合には日本語のCCSが使われるが、全てが慣例に基づくもので、RFCすらも無い。IANAに登録されている識別名は通称と同じ「EUC-JP」であり、CCSに純粋なJIS X 0208が使われている。

亜種
 一般的なCESとしてのEUC-JPに、様々な文字集合(CCS)を当てはめた符号が、様々に使われている。
 このほかにも無数に存在する。
 また、このCES自体を拡張してしまったものも存在する。

仕様

基本仕様
 8ビットで文字を表現する8ビット符号である。つまり、CL/GL/CR/GRの全てを用いる。
 それぞれに、C0/G0/C1/G1が呼び出しされた状態で固定されており、変更はできない。
 G2G3の文字を使う場合は、SSを使う。

符号範囲
 基本的なEUC-JPは、2バイト文字に対し、次の範囲を使う。
 必要に応じ、SS2やSS3が先行し3バイトとなることがあるが、続く2バイトの範囲は維持される。
 但し、ISO/IEC 2022に違反するが2バイト目を拡張したものもあり、代表例として「EUC-HJ」がある。EUC-HJは、次のようになっている。

指示
 EUC-JPは、文字集合が各バッファーに呼び出し指示された状態で開始される。しかし、どの文字集合が初期状態であるかは、実装によりまちまちである。
 ごく一般的な実装では、次の通り。
 この場合、GLには常にG0、GRには常にG1が呼び出されている。
 場合により、G2は未使用、G3は未使用、G3は全領域が外字領域、G3は独自の文字集合、といったものがある。

文字集合
 代表例を幾つか紹介する。
EUC-JP
 IANAに登録されたもので、最も一般的なものである。
 上に説明されたもので、G0がASCII、G1がJIS X 0208である。G2とG3はオプション扱いとなっている。
Microsoft Windows Codepage : 51932
 Microsoft Windowsの実装。通称は「CP51932」。
 G1の文字集合がWindows-31Jの文字集合になったものである。
 外字領域は存在しない、
eucJP-ms
 TOG日本ベンダ協議会(TOG/JVC)が策定したeucJP-openの実装の一つ。
 文字集合をWindows-31Jの文字集合に近づけたもので、更にUnicodeとの変換表がWindows-31JのシフトJISの仕様に準拠している。
 Windows-31Jにある拡張漢字は、G3にIBM拡張文字の部分集合が用意されている。
 ユーザー定義外字は、G1とG3の85区〜94区に各10区、合計20区を割り当てている。

利点と欠点

利点
  1. ISO/IEC 2022に完全に準拠している
  2. 区点とEUC-JPの計算が簡単 区/点それぞれに0x20を足せばすぐに求められる。
  3. 2バイト目が0x80より小さい符号を含まない 0x5c(\)を2バイト目に含まないため、プログラムでの扱いが楽である。

欠点
  1. 1バイト目か2バイト目か分からない 1バイト目と2バイト目は符号が重複しており、あるバイトを見ても、それがEUC-JPの1バイト目なのか、2バイト目なのかがすぐに分からない。
     直前・直後を見ても判断できないことが多く、延々と遡り、結局文字列の最初まで遡らないと判断できないこともある。
  2. いわゆる半角カナが2バイトになる いわゆる半角カナJIS X 0201の右側はG2に配置されているため、SS2を併用した2バイトとなってしまう。

EUC-JPの起源
 この符号は、かつて開発されていた国産UNIXシステムΣで、日本語を扱うために作られたものに由来する。当時は「UJIS」と呼ばれていた。
 この仕様が、1985(昭和60)年に日本語UNIXシステム諮問委員会により提案され、米AT&TがMNLS(Multinational Language Supplement)として規定した。これがいわゆる「EUC」であり、EUC-JPはそのうち日本語用である。
 Σプロジェクトは成功しなかったが、EUC-JPは今も生きている数少ない功績の一つである。

再検索