EUC-JP と Linux

(1/1)
国産パソコンで シフト JIS コードが普及する中、UNIX で日本語を扱うための文字コードとして AT&T が制定したものが EUC-JP である。Extended UNIX Code Packed Format for Japanese の略で、日本語EUC とも呼ばれる。

JIS X 0208 と EUC-JPの関係

EUC-JP は、ISO 2022 8 ビット の GR領域(0xA0~0xFF)を第1 ・第2 バイトとして使う 2 バイト・コードである。
ISO 2022 8ビット表
ISO 2022 8 ビット表
GL領域には ASCII コードを配置する。
ASCIIコード
ASCII コード
ただ、このままでは半角カタカナを扱えないため、C1領域の一部(0x8E)に半角カタカナを割り当てている。

EUC-JP コードの一部(冒頭部分)を下表に掲げる。グレーは未定義文字である。
EUC-JPコード
EUC-JP コード
EUC-JP は AT&T が定めたものだが、JIS X 0208:199797JIS)に記載されている「国際基準版・漢字用8 ビット符号」の並びに相当する。

EUC-JPの派生型

EUC-JP にも シフト JIS のような派生型がある。

CP51932 は、NEC特殊文字NEC選定 IBM 拡張文字 を組み込んだもので、Windows 98 から利用できるようになった。

eucJP-ms は、NEC特殊文字IBM 拡張文字 に加え、ユーザー定義文字にも対応したもので、TOG 日本ベンダ協議会などが策定に当たった。
その後、IBM 拡張文字 は普及しなかったため、eucJP-ms は使わないほうが無難である。

EUC-JP と Linux

Linux
1990 年代に入って登場した Linux は、UNIX の流れを受け、標準的な日本語コードとして EUC-JP を採用した。その後、Unicode へ移行している。

EUC-JP と多言語化

EUC-JPISO 2022 の延長線上にあり、国際的に受け入れやすい。実際、ハングル文字を表す EUC-KR や、簡体中国文字を表す EUC-CN などが制定されている。
ただし、各言語向けのコード体系が作りやすいという意味で、後述する Unicode のように、それだけですべての言語・文字を包含するという目的ではない。

EUC-JPシフト JIS と比べた場合、半角カタカナを 2 バイトで表すところが決定的に異なる。
シフト JIS では、全角文字は 2 バイト、半角文字は 1 バイトという対応になっており、文字列の横幅を計算するのに好都合である。
たとえば「アは半角、アは全角」というシフト JIS の文字列に対し、PHP の組み込み関数  strlen  を適用すると、結果は 17 である。同様に EUC-JP の文字列に適用すると、結果は 18 になる。

参考サイト

(この項おわり)
header