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が何種類か登場しています。


8−2  EUCとは

UNIX の内部で扱う文字コードは、これまで述べてきた Windows 系のOSとは全く 異なる体系を持っています。すなわち、EUCコード(Extended Unix Code)体系です。 厳密には、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バイトのコード として処理されます。