ブラウザでHTML文書を表示していると、時たま文字化けを起こすページがあります。日本では主に JIS、シフトJIS、EUC の3種類の漢字コードが混在しており、ブラウザはこれを自動的に判別しようとするのですが、時たま判別に失敗してしまうのが原因です。一般に、JISの文書が文字化けすることはなく、EUCの文書は文字化けする可能性が高いようです。これを防ぐには、すべての文書をJISで記述するか、文書を送信する際のHTTPヘッダに次のような呪文を追加することにより、文書がシフトJISやEUCで記述されていることを明示する方法があります。
Content-type: text/html; charset=x-euc-jpシフトJISの場合は x-euc-jp の部分が x-sjis または Shift_JIS となります。キャラクタセットの一覧については下記のURLを参照してください。
http://www.isi.edu/in-notes/iana/assignments/character-setsHTML文書で指定する場合は文書のヘッダ部(<HEAD>〜</HEAD>の間)に以下のような記述をします。
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=x-euc-jp">perlによるCGIスクリプトで指定する場合は、例えば次のようにします。print "Content-type: text/html; charset=x-euc-jp\n"; print "\n"; print "CGIスクリプトの実行結果\n";しかし、charset= で漢字コードを指定しても、ブラウザによってはこれを無視して、自前の漢字コード変換を行おうとするものもあるようです。また、シフトJISの場合にはさらに困った問題があります。 x-sjis は暫定的なもので、Shift_JIS が後程定められた正しいものなのですが、NN2.0は、x-sjis しか知らないため、Shift_JIS を指定するとかなりの確率で文字化けをおこします。 かと言って、x-sjis を指定すると今度は Lynx などの一部のブラウザがこれを解釈できず、文字化けします。
結論としては、すべてJISに変換してから転送するのがベストのようです。 保存時にJISで保存してくれるテキストエディタや、転送時にJISで転送してくれるFTPツールなどがあります。 (私の場合は、検索ができなく(遅く)なるので、結局シフトJISをcharset指定無しで用いていますが・・・)