基本的に、インターネットの網を通過するコードは、JIS コードでなければ なりません。 Shift JIS あるいは、EUC は本来アウトです。というのも、 Shift JIS も EUC も 8 ビット目を使っているからです。
JIS の漢字コードは、1文字=16 ビットということになっていますが、実際 には 14 ビットしか使っておらず残り 2 ビットは空いています。これは、 1 バイト= 8 ビットずつのデータをやりとりする場合、実際には 7 ビット単 位しか必要としないという意味です。
これに対して、Shift JIS も EUC も 8 ビットをフルに使っています。
例えば、全角スペースで比べるとこうなります。
コード | 16進 | ビット | トップのビット |
---|---|---|---|
JIS | $2121 | 00100001 00100001 | 使用していない |
Shift JIS | $8140 | 10000001 01000000 | トップも使用している |
そういったわけで、メールも、本文は、メールソフトか、メールサーバーか
で、一度 JIS コードに直すことになっています。これは、むしろ、話が逆で、
日本にインターネットが導入されたときに、 7 ビット、それも、バイト単位で
しか受け付けない欧米のネットワークに対応して、漢字コードを通すために、
バイト単位処理で、しかも 7 ビットシステムで通過するコードにしたというこ
とだそうです。
故に、メールの本文が文字化けすることはほとんど無いはずです。半角のカ
タカナが化けるのは、 JIS への変換で失敗するからです。
メールのヘッダは、もう少し大変で、「非 Ascii 文字を使ってはならない」
という決まりになっています。本来、メールヘッダには、漢字コードを書くこと
はできません。上述のように、Shift JIS, EUC は 8 ビット目を使っているので
論外。JIS は、漢字コードの開始宣言として、コントロールコード(これが、非
Ascii)を使う必要があるので、これもアウト。
しかし、日本では、JIS コードは、ちゃんと漢字にしてくれる処理系が多いで
すね(してくれない処理系もあります)。
上の話はあくまでも、「網を流れる」コードのことで、各マシンのコードとは
本来直接的な関係はありません。いわゆる JIS コードは、「情報交換用文字符
号」という規格名称であり、交換を目的とした場合に使用するものです。した
がって、個別のマシンの内部コードとして、JIS コードを使う必然性はありませ
ん。パソコン通信の場合は、内部コードとして使用している Shift JIS が、情
報交換用として大きな顔をしているので、まっとうな通信屋さんには非常に評判
は悪いです。
これを考えると、(たとえ、WS は EUC で動いていたとしても)ホームページ
は JIS コードで書くのが筋というものです。
さらに、最近は、Mime がかなり標準的になってきました。
これは、Ascii 文字だけを使って、任意の文字を表現するためのもので、
メールヘッダに、