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 機は少ないそうです。
8−5 JIS第1・第2水準文字(2バイト文字)0xA1 〜 0xFE がきたら、次の1バイトと合わせてJIS第1・第2水準文字とみなします。 コードは、JISコードの第1バイト・第2バイトにそれぞれ 0x80 を加えた(つまり8ビット目を立てた)コードになっており、 ある意味わかりやすい。
'愛' という字のEUCコードは 0xB0A6 です。 8−6 拡張文字についてJIS未定義領域にIBM等が採用した拡張文字(いわゆる機種依存文字)について、 UNIX 系のOSでは同じ字形をサポートしていないことが多いようです。 ネット上の掲示板などで Windows ユーザーが UNIX 系ユーザーからしばしば不評を買うのは、 ○付き数字やローマ数字についてでしょう。 |