お問い合わせメールフォームを作りました。
一部のお客様からのメールが部分的に文字化けします。
==========
E月E6日に宿泊させてぁEだきました�
そE際E対応でどぁEても納得できなかった為メールしました�
==========
メールフォーム自体は UTF-8 でエンコードしていて、メール送信の際に JIS にしています。
==========
<?php
mb_language("Japanese");
mb_internal_encoding("utf-8");
[snip]
$from_name = mb_convert_encoding($from_name, "JIS", "UTF-8");
$from_name = '=?ISO-2022-JP?B?'.base64_encode($from_name).'?=';
$body = mb_convert_encoding($body, "JIS", "UTF-8");
[snip]
$mail_true = @mb_send_mail($mailto, $subject, $body, $additional_headers);
[snip]
No.1ベストアンサー
- 回答日時:
mb_language("Japanese");
mb_internal_encoding("utf-8");
を指定していますからmb_send_mailの第3引数まではphp側がutf-8→iso-2022-jpの変換を行います。なので$bodyを自前でmb_convert_encodingしているのは『余計な処理』です。utf-8として「おかしい」文字はそのままかもしれませんが、utf-8→iso-2022-jpが可能だった部分は変換されてしまいます。
$body = mb_convert_encoding($body, "JIS", "UTF-8");
この処理を外してみてください。
なお第4引数(自動変換の対象外)の$from_nameもmb_encode_mimeheaderを使って
$from_name = mb_encode_mimeheader(mb_convert_encoding($from_name, "JIS", "UTF-8"));
とすべきです。
#出来れば他のライブラリ(JPHPMailer)を使う方がいいんですが・・・
返信が遅れ申し訳ありません。
ご教示いただいた修正をして、テストメールを送ってみました。
結果は文字化けしませんでした。
ただ、私の環境では修正前でも文字化けしなかったので、
他の環境で文字化けするか、まだわかりません。
ご回答ありがとうございました。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SJIS→UTF-8変換後の文字化けに...
-
multipart/form-dataの文字化け
-
PHPmailerでの添付ファイルの文...
-
phpMyAdmin内での文字化け
-
PHPアクセスログ バッチ処理
-
Warning: mb_strpos(): Unknown...
-
SJISで取得した半角カナをUTF-8...
-
送信したメールのタイトルが無...
-
文字化け変換方法
-
PHP cURLでPOSTした値が文字化...
-
メール送信の設定について
-
includeファイルの文字コードに...
-
VBAのコマンドボタンの文字列の...
-
awkで改行を除いて文字列を抜き...
-
エスケープ文字の復帰(¥r)と...
-
C++で空Enterの入力を判...
-
「続行するには何かキーを押し...
-
Excel関数「COUNTIF」で”文字”...
-
電話番号のチェック ハイフン...
-
C# DataGridViewのセルを改行禁...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
SQL Serverで文字コードUTF-8
-
PHPmailerでの添付ファイルの文...
-
SJISで取得した半角カナをUTF-8...
-
UTF8メールがLotus Notesで文字...
-
RSSを取得すると文字化けする。
-
「あ」→「82A0」のようにshift-...
-
【PHP】mb_convert_encoding...
-
メールのCCに複数のアドレスを...
-
postの文字化け防止について
-
PHP+Postgres 「髙」が文字化け
-
SJIS→UTF-8変換後の文字化けに...
-
記号だけの文字化け対応について
-
phpMyAdmin内での文字化け
-
送信したメールのタイトルが無...
-
phpのメールフォームの完了画面...
-
SJISからUTFに変換して...
-
sjisの文字化けとその対処方法...
-
メール題名の文字化け
-
セッションが文字化け、エンコ...
おすすめ情報