- ベストアンサー
フォームメール:メール受信時の文字化け
PHPを使ってForm Mailを作成しましたが、メーラーで受信する時に文字化けが起きてしまいます。そこで、シンプルなmb_send_mailを作ってみたのですがやはり文字化けしてしまします。 同様のスクリプトで過去に別のホスティングサーバーでは問題なかったのですが、現在使っているサーバーでは文字化けをしてしまいます。管理者に問い合わせたところ、サーバーには問題がないとのことでした。 ---下記がそのスクリプトです--- <?php mb_language("ja"); ini_set('mbstring.internal_encoding','EUC-JP'); ini_set('mbstring.language','ja'); $ok1 = mb_send_mail("xxx@xxx.com","Contact Form via website","Line 1\nLine 2\nLine 3\nこれは日本語のテストです。"); if($ok1) { // mail sent ok echo'<p align="center" class="text12b"><b>Mail sent ok.</b></p>'; } else { // error sending mail echo'<p>Error sending mail.</p>'; } ?> ---受信したメール--- Line 1 Line 2 Line 3 \$B\$3\$l\$OF|K\\8l\$N%F%9%H\$G\$9!# ---受信したメールのContent-Type--- Content-Type: text/plain; charset=ISO-2022-JP ---PHP Version--- PHP Version 4.3.11 解決策がご存知の方がおられましたら、知恵を貸してください。よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
mb_language("ja"); ini_set('mbstring.internal_encoding','EUC-JP'); ini_set('mbstring.language','ja'); ↑の部分を mb_language("ja"); mb_internal_encoding("EUC-JP"); ↑にしても同じでしょうか? それでも文字化けがするなら「.htaccess」ファイルを作成し、以下を書いて php_value mbstring.encoding_translation On php_value mbstring.internal_encoding EUC-JP php_value mbstring.http_output EUC-JP php_value mbstring.script_encoding EUC-JP スクリプトと同じディレクトリにアップロードしてもだめでしょうか?
その他の回答 (1)
- namnam6838
- ベストアンサー率36% (681/1861)
はずしているかもしれませんが スクリプトがshift-jisで書かれているのではないでしょうか。 EUCで書いて、ftpでもEUCでアップしたらうまくいきました。
お礼
返答ありがとうございます。 ScriptはEUCで書いてるんですよね・・・。 なのでForm以外は化けてません・・・。
お礼
返答ありがとうございます。 mb_language("ja"); mb_internal_encoding("EUC-JP"); 上記だとダメでしたが、 ".htaccess"だとうまくいきました!! 本当に助かりました。実は数週間ほどこのCodeと格闘してまして解決の糸口がみつけられず困っていました。 ついでに教えていただいたCodeでちょっと遊んでみたところ、 下記のCodeでも問題なく表示できました!! ※.htaccessは不要 ini_set('mbstring.internal_encoding','EUC-JP'); ini_set('mbstring.http_output','EUC-JP'); ini_set('mbstring.script_encoding','EUC-JP'); 知恵を貸していただき、ありがとうございました。