- 締切済み
PHPのコードをUTF-8に変換したい。
なんとかメールフォーム設置までこぎ着けたのですが、届いたメールが文字化けしてしまいます。HTMLの文字コードがUTF-8、PHPの文字コードがshift-jisなので原因はそこだと考えたのですがPHP内のshift-jis表記をUTF-8に変えるとPHP内で文字化けが起こってしまいます。 MultiTextConverterなどのアプリケーションを使っても同様の文字化けが起こります。 どうすればいいのか分かりません。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- agunuz
- ベストアンサー率65% (288/438)
フォームからは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が必ず付加されるので注意)。
- muuming2001
- ベストアンサー率23% (202/847)
漠然とした質問で正解は答えることが出来ませぬ。 もう少し問題の切り分けをしましょう。 全ての文字が化けるのですか?特殊文字だけ化けるのですか? PHPのコードをUTF-8に変換すれば治ると思ったのは何故ですか?
- junpecho
- ベストアンサー率9% (1/11)
メールのヘッダーでちゃんと文字コード指定していないんじゃないかと予想します。 情報すくないので断言できないですが、 ここらへんとか参考にならんですか? http://www.php-labo.net/tutorial/php/mail.html