• 締切済み

フォームメールを受信すると文字化けをします。

携帯サイトにCGIフォーム(CGIの文字コードは全てshift_jis)を設置しています。 iMacや、iPatや、ThanderBirdで、受信をすると、すべて、文字化けします。 Macで、POPを返さない方が文字化けをしないと聞いたので、受信アドレスをgmailアドレスに変えましたら、Mac系では、文字化けがなくなりました。 が、同時に、普通のメールアドレスを設置し、ThanderBirdで受信をしましたら、やはり文字化けをします。 ThanderBirdのエンコード設定は、ISO-2022-JP となっていて、少し調べましたら 「インターネットでは7bitの文字コードでやりとりするのが標準なので、日本語の場合は7bitの「JIS(ISO-2022-JP)」という文字コードを使うよう定められている。Shift-JISやEUCは8bitの文字コードなので、送信の際、メールソフトがこれをJISに変換するのが普通だ。」とのこと。 半角カタカナなどは、含まれていないのですが、やはり、フォームメールを受け取りますと、文字化けをしてしまいます。 届いたメールは、タイトルは正しく表記され、中身が、文字化け。 メールのエンコードをShift-JISに変換すると、逆に、タイトルが文字化けし、本文(中身)が、正しく表記されます。 OUTLOOKなどWindowsの仕様のものを試していないのですが、 何かを修正すると、文字化けせずに、閲覧できるのか、もし、方法があれば、おおしえいただければと思いました。 使っていますCGIフォームは http://www.kurohama.net/c5.shtml 今は、Shift-JISですが、UTF-8に変換はできるようです。 どうぞ よろしくお願いいたします。

  • riedd
  • お礼率90% (30/33)
  • CGI
  • 回答数1
  • ありがとう数12

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

Shift_JISにするとCGIが動作しなくなるのは、ほとんど常識です。  スクリプト内に ―ソЫ噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭 あるいは ァА院魁機掘后察宗拭繊叩邸如鼻法諭蓮僉咫奸廖戞曄檗漾瓠磧紂隋蕁襦蹇錙顱鵝 な文字入ってたら必ず文字化けします。 したがって、スクリプト自身は、UTF-8ないし、EUC-JPで作成します。 それと、フォームやメールをどの文字コードで送信するかはまったく別の問題です。 メール本文は、iso-2022-jpで送ります。【必須】 メールのヘッダ部に日本語が含まれる場合も、iso-2022jpに変換した上でBASE64エンコードしなければなりません。  この方、あまり詳しくはないみたいです。

riedd
質問者

お礼

ご返答をありがとうございました! エンコードについて、まったくわかっていずに フォームとメールの関連が、また、理解できていずにいたので、とてもわかりやすいご説明をありがとうございました。 とりあえず、フォームの文字コードをUTF-8に変換してみます。 どうもありがとうございました! とりあえず、

関連するQ&A

  • サンダーバードで受信するメールの中に決まって文字化けするものがあるので

    サンダーバードで受信するメールの中に決まって文字化けするものがあるのですが、 エンコードは通常ISO-2022-JPになっていますが Shift_JISで来るメールは エンコード変換すればみれます。ただプリントアウトすると文字化けのままで 印刷できなくてこまっています。 とりあえず別のメールソフトで一時的にプリントしたりしていますが、、 毎回かなり面倒です。うまく出すやり方ご存知の方おしえてください。。。m(_ _;)m

  • 文字化けを直すには

    現在別のサイトで使ったメールフォームを元に、別のメールフォームを作り直しているのですが、 文字化けが発生してしまいます。 元々のサイトで使っていたメールフォームのエンコードはUTF-8で、今回はshift-jisになるので メタタグで文字コード宣言をshift-jisにしているのですが、それでも文字化けが起こります。 エンコードをutf-8にすると直ります。 修正の仕方を調べても文字コードの宣言しか見当たらないので、どのように修正してよいか わかりません。 原因等わかる方がおられましたら教えてください。

  • perlのメールフォームが文字化け

    perlのメールフォームが文字化けして困っています。 メールフォームの出力HTMLは、shift_jis それを、ISO-2022-JPに直して、送信しています。 また、jode.pl、mimew.plを使用しています。 何が原因で文字化けしているのか、教えていただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • フォームメールが文字化け

    アングラーズネット社の「インターネットショップCGI&受注管理」という書籍に付属されている「fmail」というCGIファイルを使ってメールフォーム作成してサイトにアップロードしたのですが、メール送信確認画面で文字化けします。そのメールフォームで受信したメールも文字化けしています。AdobeGoLiveCS2でホームページを作成しています。最初GoLiveでCGIファイルを読み込むとファイル内容が文字化けになっていたので、エンコーディングを日本語シフトjisに設定すると文字化けが解消されました。しかし、相変わらずメールフォーム及び受信メールは文字化けしたままです。 OSはWindowsXPです。 アドバイスよろしくお願い致します。

  • VS2005C#でメールを受信すると文字化け

    VS2005C#でメールを受信するときに文字コードをiso-2022-jpで変換し、 大抵のメールはこれでOKなのですが、 たまに文字化けしてしまうメールがあります。 しかし普通のメーラーで見ると文字化けせずに見えます。 ヘッダにもiso-2022-jpと書かれています。 C#で受信したときに文字化けしてしまう理由は何かあるのでしょうか? バイトが欠損しているからでしょうか? (そうなら普通のメーラーでも文字化けすると思うのですが)

  • メール送信後のHTMLが文字化けします

    FORMからsendmailを利用してメールを送信し、その結果を「送信できた」、「未入力項目がある」などを出力するHTMLとして出力するcgiを作ったのですがHTML出力が文字化けします。 メールのsubjectやbodyは文字化けせず正常に送信できます。HTMLにはMETAタグでeuc-jpやshift_jisと色々とトライしました。cgiもshift_jisとeuc-jp両方で試しましたがどちらも文字化けします。文字化けしているときにブラウザのエンコードで自動選択すると、ブラウザがcgiの使用コードに自動的に合わせてくれて正常に表示してくれますがこれがcgiを起動するたびで面倒です。エンコードを自動選択しないと文字化けしてそのときのブラウザが選択している文字コードは「西ヨーロッパ言語(ISO)です。 どうしたらブラウザに使用している文字コードを認識させるられるでしょうか?

    • ベストアンサー
    • CGI
  • メールフォームで文字化けが出る

    http://okwave.jp/qa5038084.htmlの引き続きです。(メールフォーム) <meta http-equiv="Content-Type" content="text/html;charset=shift_jis"> &jcode'h2z_sjis(*contenido) &jcode'convert(*subject,'sjis'); &jcode'convert(*infor,'sjis'); &jcode'convert(*contenido,'jis'); &jcode'convert(*res_msg,'jis'); print "Content-type: text/html;charset=shift_jis\n\n"; ↓ sjis関連をutf8に書き換え、jcodeの頭文字をJに書き換え <meta http-equiv="Content-Type" content="text/html;charset=utf8"> &Jcode'h2z_utf8(*contenido) &Jcode'convert(*subject,'utf8'); &Jcode'convert(*infor,'utf8'); &Jcode'convert(*contenido,'utf8'); &Jcode'convert(*res_msg,'utf8'); print "Content-type: text/html;charset=shift_utf8\n\n"; require 'jcode.pl'をuse Jcode;に書き換え ※jcode::" となっている箇所はありません 結果 メールフォームはエラーや文字化けは出なくて成功しましたが、メール受信の際、ThunderbirdPortableメーラーでは全て文字化け(文字エンコーディングは「日本語ISO-2022jp」となっています)、ウェブメールのgmailでは内容は文字化けになっていませんが、タイトルが文字化けになっています。 どこが悪かったのでしょうか? 宜しくお願いします。

    • 締切済み
    • CGI
  • メール受信時に文字化けする

    Outlook2007で送信したメールが文字化けしていると言われ、自分宛てに送ってみたところ、Webメールではちゃんと表示されているのに、受信すると文字化けします。 Outlook2007のオプションの送信メッセージのエンコードは「日本語(JIS)」で、送信するvCardのエンコードは「日本語(シフトJIS)」に設定されています。 他のパソコンから送ったメールは受信による文字化けはありません。 フォントの追加を行って以降の現象のような気もしますが、できればフォントの削除はしたくありません。 考えられる原因は他にないでしょうか。

  • HPのフォームから受信したメールの文字化け

    HPビルダーを使ってHPを管理しております。用語とかの詳しいことはよく分からないのですが、 CGIになるのでしょうか?お問い合わせのフォームがあり、その際に「入力してくれた名前」が、メールで受信した時に「送信者」の欄に反映されるようになっております。が、その名前が表示されるはずが、文字化けしております。 その人にメールを返信しようとすると宛先は、(アドレスの入る所)文字化けのままで困っております。 どうしたら直す事ができますか?あまりソースは詳しくないのですが、教えて下さい。お願いします。

    • ベストアンサー
    • CSS
  • 受信メールの文字化けが治せない

    受信メールが文字化けします。エンコードがユニコードになっていて、日本語自動に変更できないため、エンコードをその他日本語JISに設定しても、メールが読めません。 ※OKWaveより補足:「富士通FMV」についての質問です。

専門家に質問してみよう