http://u28.jp/inquiry/index.html
上記のURLに設置したフォームからメールを送信すると、
送信されたメールが文字化けします。
文字化けの内容は、漢字だらけ、まるで中国語みたいなメールになるというものです。
【概要】
CSSにて文字コードをUTF-8に指定しています。
ページのヘッダーでcharsetをUTF-8にしています。
届くメールは、メールタイトルはきちんと表示されています。
本文のみ、漢字だらけの文字化けです。
フォームのcgiは下記のような内容です。
http://u28.jp/inquiry/cgi.txt
(コードをテキストファイルにコピペしました)
実際はsendmail.cgiというファイル名で
動作しています。
このcgiを別のhtmlから動かすと、
(例:http://www.u28.jp/inquiry/input.html)
文字化けせずにきちんとメールが届くので、
cgiプログラムの問題ではなさそう・・・と思っています。
(css?JavaScript?はまって抜け出せません)
何度やっても、到着するメールは文字化けしています。
症状は以上です。
どなたか、お気づきの点などがありましたら
アドバイスをお願いいたします。
この CGI スクリプトが文字コードの変換に使用している jcode.pl は、UTF-8 には対応していません。
対応している文字コードは、ISO-2022-JP, EUC-JP, Shift_JIS の 3 つです。
一般的に、Web ブラウザーはフォームに入力されたデータをページの文字コードで CGI へ送る(と思う)ので、ページの文字コードを上記の何れかにする必要があると思います。
また、この CGI スクリプトは、入力データの文字コードの判別を jcode.pl の自動判別に頼っているので、判別に失敗する可能性があります。
・CGIのファイルをエディタで開く
・使用する文字コードを決める(SJIS=0x5C問題がある/JIS=容量が大きくなる/EUC=あまり一般的でない)など一長一短ですのでよく考えましょう。
・出力するHTMLに、「<meta http-equiv="content-type" content="text/html;charset=shift_jis"/>」のようなメタタグを追加します。
・エディタで文字コードを指定して保存します。(文字コードの指定は保存ダイアログか書式メニューあたりにあることが多いです)
またCSSの文字コードはまったく関係ない、というかHTML/CGI双方ともCSSの記述は見当たりませんし、HTMLは実際の文字コードはSJISなのにメタタグはUTF-8になっているので文字化けしています。
最後に助言ですが、基礎的な用語の意味を間違えているようなので基礎から勉強しなおすことをお勧めします。
「ファイルそのものの文字コード」ですね。
アドバイスありがとうございます。
今まで深く理解せずに取り組んでいたことがわかったので、
もう一度基礎から勉強してみます。
早速の回答ありがとうございます。
申し訳ないのですが、もう少しだけ詳しく教えていただけますでしょうか。
・文字コードの設定はどのようにしたらよいのでしょうか?
(不思議なことに、css・ページヘッダをShift_JISに変更しても、
なぜか文字化けが起きてしまったのです。これ以外の要素で
文字コードに影響をおよぼすものがあるのでしょうか??)
申し訳ないのですが、
もう少しだけ突っ込んで教えていただければ幸いです。