プロが教えるわが家の防犯対策術!

phpでメールフォームを作成したのですが、自動返信のときの本文の一部が文字化けしてしまいます。

全体が文字化けではなくて一部で、どう対処していいかわからないです。
すいませんがお教えいただけないでしょうか?

フォームもphpも文字コードEUCです。

文字化けする本文は

「本メールの最下段にお控えが記載してございます。」
という部分です。

メール送信部分のソースは

$rebody=mb_convert_encoding($rebody,"JIS","EUC-JP");
if (get_magic_quotes_gpc()) { $rebody = stripslashes($rebody); }
$resbj="=?iso-2022-jp?B?".base64_encode(mb_convert_encoding($resbj,"JIS","EUC-JP"))."?=";
$reheader="From: $to\nReply-To: ".$to."\nContent-Type: text/plain;charset=iso-2022-jp\nX-Mailer: PHP/".phpversion();


です。
今悩んでて3時間ぐらいいろいろ試したのですがダメでした。
すいませんがよろしくお願いします。

A 回答 (1件)

>$rebody=mb_convert_encoding($rebody,"JIS","EUC-JP");


>if (get_magic_quotes_gpc()) { $rebody = stripslashes($rebody); }

stripslashesしているので、$rebodyはPOSTされるものでしょうか?mb_convert_encodingの前にstripslashesしないとマズイと思います。

で、「化ける部分」というのは$rebodyに(最初はEUC-JPで)含まれていますか?

(長い蛇足)
おそらくはmail()を使っていると思いますが、mb_send_mail()を使わない(使えない)理由は何でしょう?単純なtext/plainのメールであればmb_send_mail()を使えば自分でmb_convert_encodingやmime(base64)などといったことをしなくて済みます。mb_internal_encoding(EUC-JPですね)から(mb_languageがjaであれば)iso-2022-jpの適切なメールを送ってくれます。
    • good
    • 0

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