ホームページ >バックエンド開発 >PHPチュートリアル >phpmailerで中国語メールが文字化けする問題の解決策まとめ

phpmailerで中国語メールが文字化けする問題の解決策まとめ

WBOY
WBOYオリジナル
2016-07-25 08:59:553262ブラウズ
  1. $mail = new PHPMailer();
コードをコピー

2: 電子メールのエンコードを設定します。

  1. $mail->Charset='UTF-8';
コードをコピー

多くの友人が「GBK」または「GB2312」に設定していたと思います。私も最初は同じようにしました。 , そして、メールが国際化されていることがわかりました。Gmail などの国際メールボックスで中国語を正しく表示したい場合は、エンコードを「UTF-8」に設定してください。

3,: タイトルのエンコーディングを設定します。 ここで、電子メールのエンコードを設定した後、ヘッダーのエンコードを設定する目的は何なのかと尋ねる人もいるかもしれません。 複数のメールボックスをテストすると、$mail->Charset="UTF-8"; と設定した場合でも、中国語のタイトルが文字化けしていることがわかります。 PHP を学習した後は、PHP マニュアルをもっと読むか、php.net に注意を払う必要があります。PHP 公式 Web サイト hhtp://.www.php.net/mail でタイトル文字化けの解決策を見つけました。 $mail->Subject ="レタータイトル"; は $mail->Subject = "=?utf-8?B?" に変更されました。 「このエンコーディングは、電子メールの本文など、純粋な 8 ビットではないバイナリ データをトランスポート層で送信できるように設計されています。」 (PHP マニュアルの Base64_encode() より) これでタイトルの中国語の文字化けは解消されます。

#-------------------------- 添付ファイル、phpmailerで送信したメールで漢字化けが発生する問題があります

デフォルトではphpmailerで送信されるメールが文字化けする場合があります。 解決策はオンラインで提供されます: 行を追加してください

  1. $mail->CharSet = "UTF-8";
コードをコピー
テスト後、このメソッドは 163 で利用できますが、QQ メールボックスが文字化けし、QQ メールボックスがデフォルトでは文字化けしますが、この場合は問題ありません。 正しいアプローチ:

  1. $mail->CharSet = "GB2312";
コードをコピー
中国語の場合は、GB2312 を使用することをお勧めします。 QQ のみがテストされており、他の 163 人はテストされていません。

2012-11-5 更新: $mail->CharSet メソッドで設定するエンコーディングは、phpmailer クラスを参照するページのエンコーディングと一致している必要があります。たとえば、電子メールを送信するために 1.php でこのクラスを参照する場合は、次のようにする必要があります。ファイル 1.php のエンコーディング タイプに設定します。この質問はしないでください。もちろん、外部参照コンテンツには統一されたファイル エンコーディングを使用することが最善です。

以上です。phpmailer で送信される中国語メールが文字化けする問題の解決に上記の内容が役立つことを願っています。 プログラマーズホーム、皆さんの楽しい学習をお祈りしています。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。