大人になっても苦手な食べ物、ありますか?

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

解決策がご存知の方がおられましたら、知恵を貸してください。よろしくお願いいたします。

A 回答 (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

スクリプトと同じディレクトリにアップロードしてもだめでしょうか?
    • good
    • 0
この回答へのお礼

返答ありがとうございます。

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');

知恵を貸していただき、ありがとうございました。

お礼日時:2005/07/05 11:48

はずしているかもしれませんが


スクリプトがshift-jisで書かれているのではないでしょうか。
EUCで書いて、ftpでもEUCでアップしたらうまくいきました。
    • good
    • 0
この回答へのお礼

返答ありがとうございます。
ScriptはEUCで書いてるんですよね・・・。
なのでForm以外は化けてません・・・。

お礼日時:2005/07/05 10:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報