EUC
読み:イーユースィー
外語:EUC: Extended UNIX Code

 ISO/IEC 2022のサブセットで、8単位の拡張法を用いた符号系のこと。
目次

概要
 UNIX系OSの国際化対応のために開発された、文字コードのうちの符号化方法(CES)である。
 日本のΣプロジェクトから産まれた副産物であり、1985(昭和60)年に日本語UNIXシステム諮問委員会の試案に基づき、米AT&TがMNLS(Multinational Language Supplement)として規定した。
 各国の文字コードの符号化は、この枠組みで規定される。

技術

ISO/IEC 2022
 EUCは、ISO/IEC 2022の「8ビット符号」として作られている。
 より正確には、EUCの仕様に合わせてISO/IEC 2022が拡張あるいは仕様変更されている。

機構
 EUCはISO/IEC 2022なので、G0〜G3の各バッファーが存在する。
 そして、あらかじめ4つの規定の文字集合が指示されているものと仮定し、これを指示するシーケンスは一切省略する。
 この4バッファーのうち、G0に指示されるものは常にASCII相当の文字集合と決められており、残り3つは各国語によって異なる。何があるかは言語環境依存とする。
 そして、左の図形文字表には常にG0、右の図形文字表には常にG1が呼び出されているものとし、呼び出すシーケンスも一切省略する。
 指示、呼び出しが不要な代わり、後から別の文字集合を指示することもできない。また、何が指示されているか自動的に判別することもできない。
 G2やG3の文字集合を使う時には、SS2(8/14)やSS3(8/15)を併用し一文字だけ右の図形文字表(GR)に呼び出す手法を用いる。このような手法を取るため、EUCではエスケープシーケンスを一切使わずにASCIIともう一言語を共存させることができる。
 なお、SS2/SS3の後は、ISO/IEC 2022の仕様上はGL/GRどちらでも良い仕様で、原則GLを使うが、EUCではGRを使う。

使用例
 EUCは、日本語、支那語、朝鮮語で使われている。つまり、漢字文字などを利用する言語圏で使われている。その他の言語では使われていない。
 それぞれ、次のようなものが規定され、使われている。ISO 639で規定される2文字の言語コードを併記する。
 日本語EUCのことを「UJIS」と俗称することがあるが、これは過去通産省(現在の経済産業省)主導で進められ、結局実現しなかったΣプロジェクトでそう呼んでいたことに由来している。
 日本語のEUC-JPは慣例によるが、朝鮮語と簡体字支那語は、上に併記したRFCにて規定されている。

指示例
文字集合G0G1G2G3
日本語(JIS X 0208)JIS X 0201英数JIS X 0208漢字JIS X 0201カタカナJIS X 0212補助漢字
日本語(JIS X 0213)ASCIIJIS X 0213漢字JIS X 0201カタカナJIS X 0213JIS X 0212
支那語簡体字(EUC-CN)ASCIIGB 2312  
支那語正体字(EUC-TW)ASCIICNS 11643-1CNS 11643-2〜16 
朝鮮語ASCIIKS X 1001  

特徴

バイト
 EUCの長所の一つとして、ISO-2022-JP(JUNETコード)とは異なり、文字列の中のある1バイトを見れば、それが1バイト文字か、2バイト以上の文字の一部か判別が付けられる点がある。
 この特徴は、1バイト英数文字と日本語文字の混じった文書を処理するようなソフトウェアを作りやすくしており、このためUNIXの日本語化には日本語EUCがよく使われてきた。
 但し、第1バイトと第2バイトは同じ範囲内にあり、それを単純なロジックで判別することは出来ないため、最悪で文字列の先頭まで遡らないとならない。これは、MS-DOSMicrosoft Windowsなどで普及したシフトJIS等と同様の欠点である。

エスケープ
 EUCは、エスケープシーケンスが不要である。
 このため、英語と日本語が混じるような文書を計算機内にファイルとして保存しておく場合もファイルの容量が小さくて済むほか、モードを管理する必要がないため英語のソフトウェアの日本語化も容易に可能である。
 ちなみにSS2/SS3の後でGRを使うことは当初ISO/IEC 2022に違反する恐れもあったが、その後ISO/IEC 2022が改訂され、問題がなくなった。

欠点
 短所としては、ASCII文字とせいぜいもう一ヶ国語の混在しかできない点である。
 例えばASCII文字とJIS漢字と支那語漢字の混ざった文書を、EUCで表現することは出来ない。このため図書館の蔵書管理システム(蔵書の題名は3ヶ国語以上ありうる)のように、多国語を混在させる必要がある用途には向いていない。
 そんな事もあってか、現在ではUNIX環境でも徐々にUTF-8が普及しはじめているようである。

使い方

使用例
 EUC-JP(日本語EUC)を例とする。
 大まかには、次のように表現する。
 例えば、0$阿ア〓の場合、次のような符号列で表現されることになる(ア〓はJIS X 0201カナのアとする)。
 但し、UNIXでは概ね、JIS X 0201カナは使用されない。

技術面

JIS漢字
 0$阿ア〓のうち、0と$は良いとして、まず阿である。
 阿はJIS X 0208の漢字であり、これはバッファーG1に指示されていて、かつGRに呼び出されている。これがEUC-JPの標準状態であり、変更できない。
 さてGRの文字は、コードの最上位ビットを1にするだけで良い。従ってそのようにして用いることにする。
 まず「阿」は「16区04点」にあり、ISO-2022-JPでは各々に0x20を足して0x30 0x24(3/0 2/4)で表現される。この各バイトに0x80を足すと0xb0 0xa4(11/0 10/4)となり、これがEUC-JPにおける「阿」を指す符号となる。

JIS X 0201カナ
 次にJIS X 0201カナの「ア」である。
 EUC-JPではJIS X 0201カナはG2に存在するので、用いるときには1文字ずつSS2(8/14)を使用してGRへ呼び出すことになる。
 まず「ア」の符号位置は、JIS X 0201においては3/1である。これがGRに呼ばれるので、符号位置は11/1になる(0x80(8/0)を足せばよい)。
 SS2が先行するので、結果としてこの「ア」は、0x8e 0xb1(8/14 11/1)という2バイトで表現されるわけである。

再検索