Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
PHPMailerでの文字化けについて - PHPプロ!Q&A掲示板
[go: Go Back, main page]

<< SoftBank携帯の絵文字処理について 質問一覧 メールの本文を添付ファイルと切り離... >>

  • 募集中!! 0P
PHPMailerでの文字化けについて

PHP 5.1.6
PHPMailer 2.2.1
Windows2000(SP4)

「はしご高」「崎の大が立」「○数字」などの文字を含めると文字化けしてしまいます。
php.ini内のエンコーディングは、SJIS-winに設定しています。

「はしご高」などの文字化けを、どうすれば回避できるのでしょうか?

  1. <?php
  2. require("./phpmailer/class.phpmailer.php");
  3. mb_language("japanese");
  4. mb_internal_encoding("SJIS-win");
  5. $to = "xxx@xxx.com";
  6. $subject = "subject";
  7. $body = "body";
  8. $from = "xxx@xxx.com";
  9. $fromname = "xx xx";
  10. $attachfile = "./xxx.txt";
  11. $mail = new PHPMailer();
  12. $mail->CharSet = "iso-2022-jp";
  13. $mail->Encoding = "7bit";
  14. $mail->AddAddress($to);
  15. $mail->From = $from;
  16. $mail->FromName = mb_encode_mimeheader(mb_convert_encoding($fromname,"JIS","SJIS-win"));
  17. $mail->Subject = mb_encode_mimeheader(mb_convert_encoding($subject,"JIS","SJIS-win"));
  18. $mail->Body  = mb_convert_encoding($body,"JIS","SJIS-win");
  19. $mail->AddAttachment($attachfile);
  20.  
  21. if (!$mail->Send()){
  22.   echo($mail->ErrorInfo);
  23. }
  24. ?>
QPHPMailerでの文字化けについて scd010203  [09月13日 16時11分] NEW!
┗Re:PHPMailerでの文字化けについて tezcello  [09月13日 17時21分] NEW!
  ┗Re:Re:PHPMailerでの文字化けについて scd010203  [09月13日 17時34分] NEW!
    ┗Re:Re:Re:PHPMailerでの文字化けについて tezcello  [09月13日 22時51分] NEW!

コメント一覧

並び替え( ツリー順 / 投稿順[降順] / 投稿順[昇順]

Re:PHPMailerでの文字化けについて

MSが(勝手に)拡張した文字や機種依存文字といわれる丸付き数字などは、JIS には無いはずです。
なので、PHP内では区別出来ていても、JIS にエンコードしようとした時点で失敗するのでは?

なので、JIS(≒iso-2022-jp)で送信する以上、回避は不可ではないでしょうか?
UTF-8 で送ればチャンと区別出来るかも知れません。
(相手がチャンと受信出来るかはメーラに依存しますが... SJIS-win で送るのと変わらないかも)

Re:Re:PHPMailerでの文字化けについて

tezcelloさん、返信ありがとうございます。

PHPのエンコーディングをUTF-8にすればという事ですが、SJIS-winのままで文字化け回避は不可能
なのでしょうか??

Re:Re:Re:PHPMailerでの文字化けについて

言葉足らずだった様でごめんなさい。
PHPのでは無く、「メールのエンコードを」です。


一般にEメールはエンコードとして JIS が使われます。
   質問文の12行目で CharSet を指示していますよね。
   なので、本文等を mb_convert_encoding() でエンコードの変更もしていますよね。
これらを UTF-8 にしてやったらどうかという提案です。
   UTF-8 は 8bit なので、$mail->Encoding = "8bit";  という事になるとおもいます。

最近のサーバなら、8bit でもチャンと送受信してくれるのではと思いますが...
SoftBank携帯の絵文字処理について 質問一覧 メールの本文を添付ファイルと切り離...