人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

cgiフォームメールで謎の文字化け。ヘルプを・・・

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?はまって抜け出せません)

何度やっても、到着するメールは文字化けしています。

症状は以上です。
どなたか、お気づきの点などがありましたら
アドバイスをお願いいたします。



●質問者: kyoto_kyoto
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:CGI CSS HTML JavaScript sendmail
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● しおり
●35ポイント

この CGI スクリプトが文字コードの変換に使用している jcode.pl は、UTF-8 には対応していません。

対応している文字コードは、ISO-2022-JP, EUC-JP, Shift_JIS の 3 つです。

一般的に、Web ブラウザーはフォームに入力されたデータをページの文字コードで CGI へ送る(と思う)ので、ページの文字コードを上記の何れかにする必要があると思います。


また、この CGI スクリプトは、入力データの文字コードの判別を jcode.pl の自動判別に頼っているので、判別に失敗する可能性があります。

◎質問者からの返答

早速の回答ありがとうございます。

申し訳ないのですが、もう少しだけ詳しく教えていただけますでしょうか。

・文字コードの設定はどのようにしたらよいのでしょうか?

(不思議なことに、css・ページヘッダをShift_JISに変更しても、

なぜか文字化けが起きてしまったのです。これ以外の要素で

文字コードに影響をおよぼすものがあるのでしょうか??)

申し訳ないのですが、

もう少しだけ突っ込んで教えていただければ幸いです。


2 ● hirotow
●50ポイント

・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になっているので文字化けしています。

最後に助言ですが、基礎的な用語の意味を間違えているようなので基礎から勉強しなおすことをお勧めします。

◎質問者からの返答

「ファイルそのものの文字コード」ですね。

アドバイスありがとうございます。

今まで深く理解せずに取り組んでいたことがわかったので、

もう一度基礎から勉強してみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ