※ ChatGPTを利用し、要約された質問です(原文:MYSQLから取得した日本語をメールすると文字化け)
MYSQLから取得した日本語をメールすると文字化け
このQ&Aのポイント
PHPからiphoneへEメールを送信する処理を作りたいのですが、名前の部分だけが文字化けします。
メールのタイトルは文字化けせず、表示ができますが、DBから取得した文字(名前)は文字化けします。
文字化けを解決する方法を調べましたが、分からず困っています。助けてください。
MYSQLから取得した日本語をメールすると文字化け
PHPからiphoneへEメールを送信する処理を作りたいのですが、次のように書いて実行したらメール本文へ表示する
名前の部分(「~さん」の部分)だけが文字化け(「??」になる)したのでDBから取得した$user_nameの文字コードを調べたらUTF-8でした。
また、メールのタイトルとなる$subjectの文字コードを調べたらこちらもUTF-8でした。
タイトルは文字化けしないで、メールの表示ができましたが、DBから取得した文字(名前)は??になります。
文字化けを解決したいのですが、調べても分かりません。
知恵を貸していただけると助かります。
宜しくお願いします。
$email = "****@i.softbank.jp";
$sql = 'SELECT * FROM user_tbl WHERE email = "' . $email . '"';
$q = $dd->prepare( $sql );
$q->execute();
foreach ( $q->fetchAll() as $row) {
$user_name = $row['user_name'];
}
$to = $email;
$subject = "お知らせ";
$message =<<<EOM
{$user_name} さん
こんにちは。
EOM;
$add_header = "";
mb_language('Japanese');
mb_internal_encoding("UTF-8");
mb_send_mail($to, $subject, $message, $add_header);
os: windows 7
eclipse: Version: 4.2.0
Build SDK: Android 4.1(API 16)
PHP 5
お礼
私の確認不足でした。ごめんなさい。 DBに格納されたデータが??でした。 DBへ格納する処理は、androidから日本語をpostしていますが、そこでサーバー側で受ける文字コードの指定を忘れていました。