EUC-JP
読み:イーユースィージェイピー
外語:EUC-JP
日本語
向けの
ISO/IEC 2022
のサブセットで
8ビット符号
の拡張法を用いている、
EUC
の一種。
目次
概要
用途
方法と集合
亜種
仕様
基本仕様
符号範囲
指示
文字集合
利点と欠点
利点
欠点
EUC-JPの起源
概要
用途
UNIX
などで、日本語を表現するときに用いられる。
最近の
Linux
では
UTF-8
が使われ始めているが、古いUNIXシステムではEUC-JPが主流であった。
方法と集合
EUC-JPはあくまで符号化方法(CES)であり、
文字集合
(
CCS
)の規定ではない。
文字集合には日本語のCCSが使われるが、全てが慣例に基づくもので、RFCすらも無い。IANAに登録されている識別名は通称と同じ「EUC-JP」であり、CCSに純粋な
JIS X 0208
が使われている。
亜種
一般的なCESとしてのEUC-JPに、様々な文字集合(CCS)を当てはめた符号が、様々に使われている。
EUC-JP (IANA登録名)
Microsoft Windows Codepage : 51932
(Windowsの実装、外字は使用不可)
eucJP-open
(
ユーザー定義外字
などを追加したもの)
eucJP-0201
eucJP-ascii
eucJP-ms
(eucJP-openのマッピングを調整したもの)
eucJP-win (PHPで使われているもの)
Codepage 65617 (EmEditor固有)
EUC_JP_LINUX (JIS X 0201/0208のみを使う。JIS X 0212未対応)
日本語EUCコードセット3
(JIS X 0212-1990にIBM拡張漢字を加えたもの)
HP版EUC
このほかにも無数に存在する。
また、このCES自体を拡張してしまったものも存在する。
EUC-JISX0213
(
JIS X 0213:2000
で採用された)
EUC-JISX0213-plane1
(JIS X 0213:2000で採用された)
EUC-JIS-2004
(
JIS X 0213:2004
で採用された)
EUC-JIS-2004-plane1
(JIS X 0213:2004で採用された)
EUC-HJ (第2バイト0x21〜0x7Eが拡張され外字領域となっている)
仕様
基本仕様
8ビットで文字を表現する
8ビット符号
である。つまり、
CL
/
GL
/
CR
/
GR
の全てを用いる。
それぞれに、
C0
/
G0
/
C1
/
G1
が呼び出しされた状態で固定されており、変更はできない。
G2
、
G3
の文字を使う場合は、
SS
を使う。
0x00〜0x7f: G0文字(ASCII)
0xa1〜0xfe 0xa1〜0xfe: G1文字(JIS X 0208)
0x8e(SS2) 0xa1〜0xfe: G2文字(いわゆる半角カナ)
0x8f(SS3) 0xa1〜0xfe 0xa1〜0xfe: G3文字(JIS X 0212)
符号範囲
基本的なEUC-JPは、2バイト文字に対し、次の範囲を使う。
1バイト目 ‐ 10/1〜15/14 (94種)
2バイト目 ‐ 10/1〜15/14 (94種)
必要に応じ、SS2やSS3が先行し3バイトとなることがあるが、続く2バイトの範囲は維持される。
但し、ISO/IEC 2022に違反するが2バイト目を拡張したものもあり、代表例として「EUC-HJ」がある。EUC-HJは、次のようになっている。
1バイト目 ‐ 10/1〜15/14 (94種)
2バイト目 ‐ 2/1〜7/14、10/1〜15/14 (188種)
指示
EUC-JPは、文字集合が各バッファーに呼び出し指示された状態で開始される。しかし、どの文字集合が初期状態であるかは、実装によりまちまちである。
ごく一般的な実装では、次の通り。
G0
:
ASCII
G1
:
JIS X 0208
G2
:
JIS X 0201
カナ
G3
:
JIS X 0212
この場合、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区を割り当てている。
利点と欠点
利点
ISO/IEC 2022に完全に準拠している
区点とEUC-JPの計算が簡単 区/点それぞれに0x20を足せばすぐに求められる。
2バイト目が0x80より小さい符号を含まない 0x5c(\)を2バイト目に含まないため、プログラムでの扱いが楽である。
欠点
1バイト目か2バイト目か分からない 1バイト目と2バイト目は符号が重複しており、あるバイトを見ても、それがEUC-JPの1バイト目なのか、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は今も生きている数少ない功績の一つである。
再検索