首頁  >  文章  >  後端開發  >  php郵件標題亂碼怎麼辦

php郵件標題亂碼怎麼辦

藏色散人
藏色散人原創
2020-08-15 09:56:472175瀏覽

php郵件標題亂碼的解決方法:先使用【base64_encode】函數對資料進行編碼;然後在標題字串前加編碼類型為【=?UTF-8?B?】;最後將檔案儲存成相應的編碼格式即可。

php郵件標題亂碼怎麼辦

推薦:《PHP影片教學

PHP發送郵件標題亂碼的解決

遇到問題:PHPMailer發送郵件時中文亂碼,本來我的系統都是英文內容的,後來需求變化需要在標題中添加中文,但是在使用安卓自帶郵件工具收取是出現亂碼,而使用QQ郵箱查看確實正常的。

解決方法:

先用函數base64_encode() — 使用MIME base64 對資料進行編碼

標題字串前加編碼類型例如: =?UTF-8?B?

標題字串後加:?=

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

 網上還有資料說輸入使用PHPMaile可以設定CharSet屬性,由於我的問題使用上面的方法就可以解決,所以沒有嘗試這種方法,但也記錄下來。

解決的方法很簡單,在程式碼中加上一個屬性:

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

如果是gb2312的編碼,則是:

$mail->CharSet = "GB2312";

然後將檔案儲存成對應的編碼格式即可。

以上是php郵件標題亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn