- 締切済み
php自動返信メール本文の一部の文字化け
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時間ぐらいいろいろ試したのですがダメでした。 すいませんがよろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- shimix
- ベストアンサー率54% (865/1590)
>$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の適切なメールを送ってくれます。