1. 概要
EUC(Extended UNIX Code)は、ASCII文字セットを拡張して日本語や中国語、韓国語などの多バイト文字を扱うために開発された文字エンコーディング方式です。UNIXシステムで広く採用され、特に1990年代〜2000年代前半のアジア地域のコンピューティングにおいて重要な役割を果たしました。
2. EUCの歴史と背景
EUCは1980年代後半、AT&TベルラボラトリーズとX/Openコンソーシアムにより開発されました。当時、コンピュータシステムは主に英語圏向けに設計されており、ASCII(American Standard Code for Information Interchange)という7ビットコードが使用されていました。しかし、日本語や中国語などの言語は数千の文字を持ち、7ビットどころか8ビット(1バイト)でも表現できません。
この問題を解決するために、EUCは当時すでに国際標準化されていたISO-2022の仕組みを取り入れ、複数バイトで文字を表現する方式として設計されました。各国・地域の文字セットに対応したバージョンが開発され、日本語向けのEUC-JP、韓国語向けのEUC-KR、中国語向けのEUC-CNなどが誕生しました。
3. EUCの主な特徴
- マルチバイト対応: 1バイトから3バイト(地域によっては4バイト)で文字を表現
- 自己識別機能: 先頭バイトの値により、何バイト文字かを判別可能
- ASCII互換: ASCII文字(制御文字を除く)は互換性を維持
- 固定長コード: 一つの文字が常に固定のバイト数で表現される(EUC-JPの場合、漢字は常に2バイト)
- ロケール対応: 地域ごとにカスタマイズされたバージョンが存在
4. 日本語EUC(EUC-JP)について
EUC-JPは日本語向けのEUCエンコーディングで、JIS X 0201(半角カタカナ)とJIS X 0208(第一・第二水準漢字)、さらに拡張としてJIS X 0212(第三・第四水準漢字)をサポートしています。
EUC-JPの構成:
- ASCII文字: 1バイト(0x21〜0x7E)
- 半角カタカナ: 2バイト(第1バイト: 0x8E、第2バイト: 0xA1〜0xDF)
- 漢字・ひらがな・全角カタカナ: 2バイト(第1バイト: 0xA1〜0xFE、第2バイト: 0xA1〜0xFE)
- JIS X 0212文字: 3バイト(第1バイト: 0x8F、第2・3バイト: 0xA1〜0xFE)
5. EUCのコード表例
以下に、EUC-JPにおける代表的な文字のコード表を示します:
文字 | EUC-JPコード | 16進数表記 | 説明 |
---|---|---|---|
A | 0x41 | 41 | ASCII文字 |
あ | 0xA4A2 | A4 A2 | ひらがな |
ア | 0xA5A2 | A5 A2 | 全角カタカナ |
ア | 0x8EA1 | 8E A1 | 半角カタカナ |
漢 | 0xB4C1 | B4 C1 | 常用漢字 |
髙 | 0x8FB0EC | 8F B0 EC | JIS第3水準漢字 |
コード変換例
例えば「日本語」という文字列をEUC-JPでエンコードすると以下のようになります:
- 「日」: 0xC6FC (C6 FC)
- 「本」: 0xCBDC (CB DC)
- 「語」: 0xB8EC (B8 EC)
したがって、「日本語」のEUC-JPエンコードは:C6 FC CB DC B8 EC となります。
6. 他のEUCバリエーション
6.1. EUC-KR (韓国語)
韓国語を表現するためのEUCで、KS X 1001(旧KS C 5601)規格に基づいています。 ハングル文字や漢字(ハンジャ)を2バイトで表現します。
6.2. EUC-CN (中国語簡体字)
中国大陸で使用される簡体字中国語向けのEUCで、GB2312規格に基づいています。 約7,000字の漢字と記号を2バイトで表現します。
6.3. EUC-TW (台湾中国語)
台湾で使用される繁体字中国語向けのEUCで、CNS11643規格に基づいています。 非常に多くの漢字をサポートするため、4バイトまで使用可能です。
7. EUCと他のエンコーディングとの比較
7.1. EUC-JP vs Shift-JIS
- Shift-JIS: マイクロソフトとアスキーが開発した日本語エンコーディング
- 長所: Windowsでの互換性が高い、2バイト目が記号と重複しにくい
- 短所: バイト境界の判別が複雑
- EUC-JP:
- 長所: UNIXシステムとの親和性が高い、バイト境界の判別が容易
- 短所: 2バイト目が記号と重複する可能性がある
7.2. EUC vs UTF-8
- UTF-8: Unicodeの実装の一つで、世界中のほぼすべての文字をサポート
- 長所: 言語を問わず統一的に扱える、Web標準
- 短所: 多くの東アジア言語で3バイトを要する
- EUC:
- 長所: 東アジア言語に特化している、多くの漢字が2バイトで済む
- 短所: 多言語混在文書の扱いが複雑
8. 現代でのEUCの位置づけ
2000年代に入り、インターネットの国際化に伴いUnicode(特にUTF-8)が標準となるにつれ、EUCの使用は徐々に減少しています。現在では:
- 新規システム開発ではほぼUTF-8が採用される
- レガシーシステムや古いデータベースでEUCが使われ続けている場合がある
- 日本のUNIXシステムでは歴史的経緯からEUC-JPがまだ見られる
- 韓国や中国でもUTF-8への移行が進んでいる
しかし、ソフトウェア開発者としては、古いシステムとの互換性やデータ移行の観点から、EUCの知識は引き続き重要です。
9. まとめ
EUC(Extended UNIX Code)は、アジア言語圏のコンピューティングにおいて重要な役割を果たした文字エンコーディング方式です。各国・地域の言語に特化したバリエーションが開発され、特にUNIXシステムを中心に広く採用されました。
現代ではUnicodeへの移行が進んでいますが、レガシーシステムやデータとの互換性の観点から、ソフトウェア開発者や管理者にとってEUCの理解は引き続き価値があります。特に日本のシステム開発においては、EUC-JPの知識が古いシステムの保守や移行プロジェクトで役立つことがあるでしょう。