インターネットにおける日本語エンコード方式の正しい設定は、
RFC1468によればISO-2022-JP(いわゆるJISコード)であり、これに含まれるキャラクタ
セットはJIS X 0208-1978,-1983、いわゆる全角文字で、JIS X
0201-1976(半角カナ)は含まれません。一応、「It does not
specify an Internet standard.」とは書いてありますが、
電子メールとNetNewsでは日本語はISO-2022-JPを使うことに
なっています。
#JIS X 0208の細かいことはJISハンドブックでも読んで下さい:-)
#JIS X 0208は古いプリンタの説明書に載っていることもあります。
また、最近のWWW(HTML)では多国語対応が強化されているため、
シフトJISや日本語EUC(EUCには他に韓国語などもあります:-))を
含む様々な国の文字コードが使えるようになりました。そこで必要
になったのが、次のような文字コードの指定です。
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-2022-JP">
これによって、従来はJapanese(auto-detect)でシフトJISと日本語
EUCの判別に失敗していたような場合でも、最初から正しい文字
コードで表示することが出来ます。しかし、良いことばかりかと
いうとそうでもありません。一部のproxyサーバは文字コード変換
フィルタを内蔵している場合があり、変換後の文字コードと矛盾が
起きることがありますし、一部のブラウザは文字コードの指定方法が
現在の規格と異なるために、正しいコードが表示されないことが
あります。そういった意味では、HTMLでも日本語を使うときには
ISO-2022-JPを使うことが正しいのかもしれません(ISO-2022-JP
はもっとも古い規格なので、日本語対応ならば必ず実装しています)。
#この文字コード等の設定はメールで使われるMIMEと同じです。
その他に、機種依存文字は後池田さんも指摘されている通り、
使うべきではありません。この機種依存文字ですが、NEC 98系
文字やWindows系文字といった機種依存文字を調べて公開している
ネットやサイトがあるので、infoseekなどで
探してみて下さい。キーワード「機種依存文字」で大量にヒット
すると思います。
#でも、機種依存文字ってNiftyみたいに直接テキストで書か
れても読めないので気になるんですよね。GIFイメージに変換して
置いてくれると全機種で見られるので嬉しいんですが。
##戯れ言ですが、NEC 98シリーズに添付されていたN88日本語
BASICは7bitJIS系です。NECがインターネットに理解があるから
というわけではなく、単に昔は旧JISしか無かったからですが。
追補
CGI等で日本語を扱う場合、受け取ったデータをデコードした
後に、nkfのような文字コードフィルタをかけてコードを統一する、
半角カナ文字を見つけたら全角に変換する、というのがコツです。
もっとも、私は日本語処理が面倒なのでそういったCGIを組んだ
ことはありません。
追補2 (けっこう重要です)
RFCはRequest For Commentsの略で、インターネット上で
使用される各種の約束事を定めた文書のことです。法的な
強制力はありませんが、アプリケーションやハードウェアを
作る場合はこれに従って設計・実装することになっています。
登録された順に番号が振ってあり、たとえば電子メールのRFC
の場合はRFC821(転送方式)
とRFC822(メッセージの構成)
などがあります。
後書き
え〜、ちょっと(意訳:だいぶ)長くなってしまいましたが、
いかがでしたでしょうか? 本当のことをいうと、書きたい
ことはまだいくつかあるのですが、書いているうちにどんどん
長くなってしまい、いっそのこと自分のWWWページに置いてURL
だけ投稿しようかと思ったのですが、とりあえず文字コードに
関してだけは投稿することにしました。ご迷惑でなければ続編の
「電子メールシステム」(作成済み約110行5KB)と「BSD UNIX
and Network」(これは無いかも)も投稿したいと考えています。
注:結局、ポインタだけ投稿することにしました(笑)
最後に参考文献を一冊。アスキーの 「インターネットを256倍使うための本Vol.1」は有用な情報と乾いた笑いに 満ちています。ぜひご一読を。