【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?

なんとかメールフォーム設置までこぎ着けたのですが、届いたメールが文字化けしてしまいます。HTMLの文字コードがUTF-8、PHPの文字コードがshift-jisなので原因はそこだと考えたのですがPHP内のshift-jis表記をUTF-8に変えるとPHP内で文字化けが起こってしまいます。

MultiTextConverterなどのアプリケーションを使っても同様の文字化けが起こります。

どうすればいいのか分かりません。
よろしくお願いします。

A 回答 (3件)

フォームからはutf-8でPOSTされてくるのですよね?それをSJISのスクリプトでそのまま扱えば、メール送信云々以前に「画面に表示させる」だけでも文字化けすると思いますが、そういう状態ではありませんか?



スクリプトをutf-8で保存し直して、Shift_JISなどの表記がある部分を全部utf-8に書き替えた上で

(画面出力対策)
header('Content-type: text/html; charset=utf-8');

(メール用)
mb_language('ja');
mb_internal_encoding('utf-8');

の記述をしてください。


なお、「utf-8で保存」するのはエディタで保存する文字セットを指定するだけですが、間違っても「BOM付きのutf-8」で保存しないように(WIndowsのメモ帳だとBOMが必ず付加されるので注意)。
    • good
    • 0

漠然とした質問で正解は答えることが出来ませぬ。



もう少し問題の切り分けをしましょう。

全ての文字が化けるのですか?特殊文字だけ化けるのですか?

PHPのコードをUTF-8に変換すれば治ると思ったのは何故ですか?
    • good
    • 0

メールのヘッダーでちゃんと文字コード指定していないんじゃないかと予想します。


情報すくないので断言できないですが、

ここらへんとか参考にならんですか?
http://www.php-labo.net/tutorial/php/mail.html
    • good
    • 0

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


おすすめ情報