8. EUCコード 

   8−1  UNIX
   8−2  EUCとは
   8−3  半角英数字
   8−4  半角カタカナ(2バイト文字)
   8−5  JIS第1・第2水準文字(2バイト文字)
   8−6  拡張文字について
   8−7  JIS補助漢字(3バイト文字)


8−1  UNIX

このページを覗いている人に、UNIX使いはほとんどいないと思うので、まずはUNIX そのものから簡単に説明しておきます。
UNIX は Windows や MacOS と同じくOSです。単一のソフトを指すのではなく、 いくつかの似たようなシステムの総称としてその名が用いられています。 厳密にいうためには「UNIX系OS」と呼ぶべきかもしれません。もともとは大型コンピュータを動かすために使われていました。 大学など、早くからネットワーク化したコンピュータ・システムは UNIX をベースにしたシステムが多いと思います。 インターネットも元々は アメリカの大学にある UNIX 同士をつなぐネットワークからスタートしたものでした。
パソコンの性能が格段に向上した結果、今では個人が持つパソコンが、かつての大型コンピュータ並みの機能を持つようになりました。 そこで、 PC-UNIX と呼ばれるパソコン用の UNIX系OSが何種類か登場しています。
広い意味でのUNIXまで含めると、現在、最も耳にすることの多いのは Linux でしょう。 (実はスマホのOSである Android も一番奥底は Linux がベースとなっています。)


8−2  EUCとは

UNIX の内部で扱う文字コードは、これまで述べてきた Windows 系のOSとは異なるコード体系を持っています。 すなわち、EUCコード(Extended Unix Code)体系です。
(ただし、前述のOSのうち、MacOS X、最近のLinux、Android などは Unicod eを採用してます。)
UNIX 上での多言語対応の一般的規約としてのEUCがまず最初にあり、 日本語がそれに対応した結果としての EUC-JP があります。 いちいち区別するのは面倒なので、以後しばらく、EUC = EUC-JP とします。
後に詳しく述べる通り、EUCでは、ASCIIコードと日本語コードを混在させるために8ビット目まで使う8ビットコード体系です。 システムの内部処理上はそれで構わないのですが、インターネットでは7ビット符号しか受け付けないシステムもあるので、 シフトJISと同様に、ネット上にデータを流す場合は、プログラムごとに7ビット符号に変換(エンコード) 処理する必要があります。


8−3  半角英数字(1バイト文字)

0x00 〜 0x7F は ASCII コードと同じとみなして処理をします。


8−4  半角カタカナ(2バイト文字)

JIS X 0201 で設定した半角カタカナコードの前に 0x8E を置いて、2バイト文字とします。 「0x8E が現われたら次の1バイトを半角カナとして処理する」という仕組みで、そのあたりはシフトJISに少し似ています。
普通のユーザーにはあまり関係ないと思いますが、表示上は1桁しか使わないのに内部処理上は2バイト使っているので、 プログラミングする側からすれば複雑な処理が必要となる、少々面倒なきまりです。
現実に、半角カナのフォントを搭載した UNIX 機は少ないそうです。
  ◆ EUC-JP の半角カタカナ ◆

  |+0 1 2 3 4 5 6 7 8 9 A B C D E F(下位)
8E80|
8E90|
8EA0|   。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ
8EB0| ー ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ
8EC0| タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ
8ED0| ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゙ ゚
8EE0|
8EF0|
(上位)


8−5  JIS第1・第2水準文字(2バイト文字)

0xA1 〜 0xFE がきたら、次の1バイトと合わせてJIS第1・第2水準文字とみなします。 コードは、JISコードの第1バイト・第2バイトにそれぞれ 0x80 を加えた(つまり8ビット目を立てた)コードになっており、 ある意味わかりやすい。

 ◆ EUC-JP 全角文字 ◆

 \|+012345789ABCDEF
    |
A1A0|  SP、。,.・:;?!\゜´`¨ ↓↓↓第1水準↓↓↓
 :  |
A3B0| 0123456789
 :  |
A4A0|  ぁあぃいぅうぇえぉおかがきぎく
 :  |
B0A0|  亜唖娃阿哀挨姶逢葵茜穐悪握渥
B030| 旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或
 :  |
D0A0|  弌丐丕个丱丶丼丿乂乖乘亂亅豫亊 ↓↓↓第2水準↓↓↓
D0B0| 舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗
 :  |

'愛' という字のEUCコードは 0xB0A6 です。

8−6  拡張文字について

JIS未定義領域にIBM等が採用した拡張文字(いわゆる機種依存文字)について、 UNIX 系のOSでは同じ字形をサポートしていないことが多いようです。 ネット上の掲示板などで Windows ユーザーが UNIX 系ユーザーからしばしば不評を買うのは、 ○付き数字やローマ数字についてでしょう。
  ◆JIS区点第13区◆
    ( Windows機では○付き数字等が見えます )
  @ABCDEFGHIJKLMNOPQRS
  TUVWXYZ[\]・_`abcdefg
  hijklmnopqrstu・・・・・・
  ・・~∞gョх援括窮欠合紫潤
  ∫島煤縺ロ∠凵諱ソ∪

8−7  JIS補助漢字(3バイト文字)

EUC-JP は、JIS補助漢字までをサポートしています。
先頭に 0x8F を付加した上で 0xA1A1 〜 の2バイトで表わし、計3バイトのコードとして処理します。