ホームページ >バックエンド開発 >PHPの問題 >PHPメールのタイトルが文字化けした場合の対処法

PHPメールのタイトルが文字化けした場合の対処法

藏色散人
藏色散人オリジナル
2020-08-15 09:56:472224ブラウズ

php メールのタイトルが文字化けする場合の解決策: 最初に [base64_encode] 関数を使用してデータをエンコードし、次にタイトル文字列の前にエンコード タイプを [=?UTF-8?B?] として追加し、最後に保存します。ファイルを対応するエンコード形式に変換します。

PHPメールのタイトルが文字化けした場合の対処法

推奨事項: 「PHP ビデオ チュートリアル

PHP によって送信されるメールのタイトルが文字化けする問題の解決策

問題が発生しました: PHPMailer が電子メールを送信すると中国語の文字が文字化けします。元々、私のシステムはすべて英語でした。その後、ニーズが変わり、タイトルに中国語を追加する必要がありました。しかし、 Android 内蔵のメールツールで受信すると文字化けが発生しますが、QQ メールボックスを使用して確認すると正常です。

解決策:

最初に関数base64_encode()を使用します - MIME Base64を使用してデータをエンコードします

タイトル文字列の前にエンコードタイプを追加します。例: =?UTF-8?B?

タイトル文字列の後に追加: ?=

//例如:
  $subject = "=?UTF-8?B?".base64_encode($subject)."?="; //utf-8
  //将上面一句添加到代码之中,这样,发送的中文邮件标题就不是乱码了。
   $subject = "=?GB2312?B?".base64_encode($subject)."?="; //gb2312

インターネット上には、PHHPMaile を使用して CharSet 属性を設定できるという情報もあります。私の問題は上記の方法で解決できたので、この方法は試しませんでしたが、記録しておきます。

解決策は非常に簡単です。コードに属性を追加します:

$mail->CharSet = "utf-8"; //设置字符集编码

gb2312 エンコーディングの場合、次のようになります:

$mail->CharSet = "GB2312";

次に、対応するエンコーディングとしてファイルを保存します。フォーマットで十分です。

以上がPHPメールのタイトルが文字化けした場合の対処法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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