主視窗    站方信息     免費註冊    
尋夢緣- 台灣交友 如何解決寄件標題中文有時會出現亂碼 交友聊天聯誼配對戀愛
資料存取

如何解決PHP使用utf8編碼寄Email時寄信者跟信件標題有中文時會出現亂碼

 
您如果是用UTF8的編碼寫寄Email的功能,會發現信件寄出時,寄信者跟信件標題有中文時會出現亂碼,但是信件內容的中文則正常,這是因為,電子郵件標準格式中,表頭的部分不允許使用雙位元的文字,所以必需使用mb_encode_mimeheader()函式將雙位元文字編碼為單位元字串,因mb_encode_mimeheader()預設的字串編碼為西方ISO-8859-1,而我們使用UTF-8編碼所以程式中必需使用mb_internal_encoding()將內部預設編碼改為UTF-8。


1.寄件者跟信件標題有中文會出現亂碼,但是信件內容的中文則正常


2.程式碼(點圖可看比較清楚

<? mb_internal_encoding('UTF-8'); $mail_from=mb_encode_mimeheader("彰化一整天的Blog",'UTF-8')."<imingho@gmail.com>"; $mail_to=mb_encode_mimeheader("收件人中文姓名",'UTF-8')."<收件人Email>"; $mail_subject=mb_encode_mimeheader("寄信標題",'UTF-8'); $mail_headers="MIME-Version: 1.0\r\n"."Content-type: text/html; charset=utf-8\r\n"."From: $mail_from\r\n"; $mail_headers.="bcc:密件收件者Email\r\n"; if (mail($mail_to, $mail_subject, $mail_message, $mail_headers)<>true) {    echo "<font color=red> 寄送失敗!!</font>"; } ?>
參考資料:使用PHP mail()寄送UTF-8編碼之電子郵件
 
 

沒有留言:

 

 

張貼留言

可以麻煩您將問題縮小成一個問題(使用範例資料),到我的論壇http://discuz.bestdaylong.com註冊發問,
,因為太多人直接發問,我無法一一回覆,但是您們的問題有可能是其他人也會遇到的,在論壇可以上傳檔案及圖片方便說明及回答問題,請說明處理前跟處理後及中間的處理原則。

discuz 論壇如何註冊及發問問題
http://discuz.bestdaylong.com/thread-32325-1-1.html
discuz如何在回文時上傳圖片
http://discuz.bestdaylong.com/thread-1920-1-3.html

如果您在使用上還有其他疑問或是建議批評,歡迎您來信指教

 

張貼人
cht