• 締切済み

メール送信時の文字化けについて

お世話になります。 PHPでメール送信のフォームを作っているのですが 何故か、「あ」や「ア」が入力されると 文字化けされてしまいます。 $address = $_POST['address']; //送信先 $name = $_POST['name']; $mail = $_POST['mail']; //相手先 $title = $_POST['title'];   //タイトル $message = $_POST['message']; //本文 mb_language("Japanese"); mb_internal_encoding("JIS"); mb_send_mail($address, $title, $message, "From:$mail", "-f$mail") ソースはこんな感じですが何か根本的な問題とかが あるのでしょうか? 初心者みたいな質問で申し訳ありません。

みんなの回答

回答No.2

【PHPマニュアル抜粋】 データベースとPHPの 内部エンコーディングについて同じ文字エンコーディングを使用することを推奨します。 上記を理解した上で。 echo mb_convert_encoding($message,mb_internal_encoding(), "auto");

  • cybert
  • ベストアンサー率56% (18/32)
回答No.1

>初心者みたいな質問で申し訳ありません。 初心者ではなさそうなので、簡単に。。 確認して頂きたいこと一つ 実験して頂きたいことが一つ あります。 ・確認して頂きたいこと 本当に内部エンコーディングはJISですか??下のソースを実行して"JIS"と出ますか?? echo mb_internal_encoding(); ・実験して頂きたいこと コメントアウトして1行追加してみて下さい。 //mb_internal_encoding("JIS"); $message = mb_convert_encoding($message, "JIS"); もしかしてpeter0906さんは日本語メールの文字コードはJISなので変換したいのではないでしょうか??

peter0906
質問者

補足

echo mb_internal_encoding();は JISと表示されました。 $message = mb_convert_encoding($message, "JIS");を しても部分的にちゃんと表示されますが、 文字化けする文字もあります。 「あ」や「ア」は文字化けして「ぼ」と表示されてしまいます。 漢字も表示できたり文字化けしたりと わけがわからない状態になっています。

関連するQ&A