みなさん、こんにちは
PHPで作成されたWebのメールフォームから送られたメールが文字化けする。
とのことでしたので、内容を確認してみました。
Subject: 縺雁撫縺・粋繧上○ ← こんな感じに化けるそうです。
おそらく正しくは、Subject: お問い合わせ なのでしょうけど。
UTF-8からShift-JISの変換に失敗したときの症状です。
PHPのコード確認してみます。
$send_contact=mail($to,$subject,$message,$headers);
う~ん・・・・
これだけじゃぁ、エンコード考えてないので文字化けしちゃうよね。
うちの会社、いったい何処の外注に依頼したのでしょうか・・・ orz
mail()使うんだったら
mb_internal_encoding("UTF-8");
$send_contact=mail($to,mb_encode_mimeheader($subject,'UTF-8'),mb_convert_encoding($message,'UTF-8'),$headers);
こんな感じでしょうか。
でも、mb_send_mail()を使って
mb_language("ja");
mb_internal_encoding("UTF-8");
$send_contact=mb_send_mail($to,$subject,$message,$headers);
としたほうがスッキリしているかも知れません。
$toと$headersにはコード上、半角文字しか入りませんから・・・・。
ところで、UTF-8指定しているところから想像できると思いますが、サーバーはLinuxを使用しています。
元ソースの改行コードをみてみると、"\r\n"となっていてWindows仕様になっているので、"\n"に変更しておきました。
うちの会社、いったい何処の外注に依頼したのでしょうか・・・ orz
ではでは~☆ミ
0 件のコメント:
コメントを投稿