- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Mb_Send_mailで文字化け)
Mb_Send_mailで文字化け
このQ&Aのポイント
- 外部のテキストファイル(EUC)のメールテンプレートを読み込んでMb_Send_mailでメール送信するプログラムを使っているのですが、文字化け問題が発生しています。
- 必ずというわけではないので、原因がわかりません。PHPのバージョンは4.3.10で、PHPのソースはSJISです。レンタルサーバ側の設定はコードコンバートなどのオプションはOFFにしています。
- メール内容に動的に日本語を入れているわけではないので、同じ内容が文字化けしたりしなかったりすることに悩んでいます。ヒントをいただけると助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
元の分と化けた文面などがあると、 どう受け取ってどう化けてしまったのかが判りやすいと思います。 文字化けの原因のほとんどは使用する文字コードが間違っているか 変換前の文字コードを間違えているかだと思います。 「何回かに一回」との事なので、 同じ文面では少々考え辛いですが、 php側で文字コードを判断する時に間違えているのではないかと思いますので、 色々変換を試してみて、結果を見てみる事をお勧めします。 参考までに、下記のコードではどのような化け方をしますでしょうか? $mail_msg = mb_convert_encoding($mail_msg, "JIS", "EUC, SJIS"); return mb_send_mail($whom, $mail_sub, $mail_msg, $mail_hed);
お礼
返信ありがとうございました。 いろいろ試しているうちに、 mb_internal_encoding ("EUC-JP"); を追加したら、なぜか治ったようです。 いまいちピンとこないですね。。 化け方は日本語が???????とはてながいっぱいになってしまっていました。 とりあえず、今は文字化けが治りました。丁寧な返答ありがとうございました。