0-n-0

*日本語EUC

UNIXの日本語環境でよく使われるコード体系です。 EUCはExtended UNIX Codeの略で、 UNIXの多言語対応の一環として制定されました。 EUCには日本語EUCの他に中国語EUC、韓国語EUCなどもあります。日本語EUCのことをUJIS(Unixized JIS)とも呼びます。

  • 制御コード:0x00〜0x1F、0x7F
  • ASCII文字:0x20〜0x7E
  • 漢字:0xA1A1〜0xFEFE (第1バイト・第2バイトとも0xA1〜0xFE)
  • 半角カタカナ:0x8EA1〜0x8EDF
  • 補助漢字:0x8FA1A1〜0x8FFEFE (第2バイト・第3バイトとも0xA1〜0xFE)

JISやシフトJISとの大きな相違点は、半角カタカナが冷遇されていることです。 JIS漢字コードの各バイトのMSBを1にすることにより漢字を導入したため、これと重複する半角カタカナは補助的な扱いとなり、 0x8Eのプレフィクス付きの2バイトコードになっています。また、0x8Fのプレフィクスにより補助漢字も表現でき、これは3バイトになります。

特長としては、エスケープシーケンスがない、第1バイトを見ただけで文字種がわかる、漢字の第2バイトがASCIIと重複しない、 ASCIIと漢字のバイト数の比率が文字の幅と一致する、などシフトJISと類似した点に加えて、 JISとのコード変換が容易なことがあげられます。

ただし、バイト数は半角カタカナや補助漢字まで考慮すると複雑となります。事実、EUCを採用したシステムでも、補助漢字までサポートしている例は非常に少なく、半角カタカナのサポートもつい最近まではなおざりにされてきました。インターネットのメールやニュースでは、現在でも半角カタカナの使用がタブーとされていますが、これは、EUCを採用しながら半角カタカナをサポートしていないシステムが多かったためでもあります。

他の欠点としては、シフトJISよりマシとはいえ拡張性に限界があること、結果的にシフトJISと似て非なるものとなってしまい日本語コードの混乱を助長してしまったこと、などです。

*シフトJIS(MS漢字コード)

DOS/WindowsやMacなどでおなじみのコード体系です。一部のUNIX(NEWS-OS、HP-UXなど)でも採用されています。その起源は、日本最初の16ビットパソコンである三菱Multi16にさかのぼります。 Multi16にCP/M-86の日本語対応版を搭載するにあたって、処理の容易なコードとしてマイクロソフトなど数社が策定したのがシフトJISです。 MS漢字コードともいいます。

  • 制御コード:0x00〜0x1F、0x7F
  • ASCII文字:0x20〜0x7E
  • 半角カタカナ:0xA1〜0xDF
  • 漢字:0x8140〜0x9FFC、0xE040〜0xFCFC //(第1バイト: 0x81〜0x9F、0xE0〜0xFC//第2バイト: 0x40〜0x7E、0x80〜0xFC)

8ビットパソコンで広く使われていたASCIIと半角カタカナをそのまま継承し、なおかつJISコードのようなエスケープシーケンスを使わずに漢字を混在させるために、所定の計算式によってJIS漢字コードを変換しています。

漢字の第1バイトはASCIIや半角カタカナと重複しないように配置されており、第1バイトを見ただけで文字種がわかるようになっています。漢字の第2バイトについても、区切り文字として使われることの多いASCIIの0x20〜0x3Fや、制御コードである0x7Fと重複しないようになっています。また、テキスト画面上ではASCIIや半角カタカナと漢字の幅の比率は1:2であることが多いですが、文字コードのバイト数もこれと同じく1:2になっています。このような特長のため、特別にシフトJISに対応していないシステム上でもなんとか日本語を通せる場合が少なくありません。

欠点としては、コード空間に余裕が少なく拡張性に乏しい (例えば、補助漢字を入れるスペースがない)こと、第2バイトに含まれる0x40〜0x7Eのコード (特に、ASCIIのバックスラッシュにあたる0x5C)が問題となる場合があること、 MSBが落ちたときの復元が困難なこと、などがあげられます。

*JISコード

インターネットで日本語のメールやネットニュースに使われているコード体系です

  • 制御コード:0x00〜0x1F、0x7F
  • ASCII文字:0x20〜0x7E
  • 半角カタカナ:0x21〜0x5F (7ビット) / 0xA1〜0xDF (8ビット)
  • 漢字:0x2121〜0x7E7E (第1バイト・第2バイトとも0x21〜0x7E)
  • 補助漢字:0x2121〜0x7E7E (第1バイト・第2バイトとも0x21〜0x7E)

ASCIIと半角カタカナを基本とし、漢字が追加されています。 ASCIIと漢字のコード範囲が重複するため、以下のようなエスケープシーケンスによって切り替えます。
補助漢字を含めることも可能であり、補助漢字の開始のシーケンスは ESC $ ( D となります。

漢字の開始:ESC $ @ または ESC $ B ~
ASCIIの開始:ESC ( B または ESC ( J
補助漢字の開始:ESC $ ( D

また、7ビットの環境では、半角カタカナもこれらと重複するため、制御コードまたはエスケープシーケンスで切り替えます。

半角カタカナの開始:SO (0x0E) または ESC ( I 
ASCIIの開始:SI (0x0F) または ESC ( B または ESC ( J

このように半角カタカナも7ビットで表現するものを俗に7ビットJIS(JIS7)と呼び、これに対して半角カタカナを8ビットで表現するものを俗に8ビットJIS(JIS8)と呼びます。

JISコードの利点の一つは、7ビットの伝送路でも伝送できることです。未だに7ビットの伝送路が残るインターネットのメールやニュースで使われている理由もここにあります。しかし、エスケープシーケンスの存在が厄介ですので、コンピュータ内部のデータ処理ではあまり使われません。

なお、PC-98のN88日本語BASICや、 PC-PR系プリンタなどでも同様のコードが使われていますが、エスケープシーケンスが "ESC K" と "ESC H" という独自のものになっています。これは通称NEC JISと呼びます


Last-modified: 2012-03-12 (月) 17:05:44 (166d)