iT邦幫忙

0

php寄信如何杜絕亂碼問題?!

我的檔案格式為UTF-8. win2003 server
1.傳送UTF-8文件檔案格式的.必須檔案格式是UTF-8檔首無BOM.
這步驟有作
2.使用 讓網頁編馬為mb_internal_encoding('UTF-8')

3.郵件表頭 使用了 mb_encode_mimeheader
內容我給她轉成 $sms_content1=iconv("UTF-8","big5",$sms_content)

4.亂馬還不是每一次都相同...
還有其他的步驟沒有作嗎??

2 個回答

4
jackwan
iT邦研究生 4 級 ‧ 2009-12-16 10:18:59
最佳解答

在下行寄出之前Show出 $message 變數內容 (echo $message),
mail($to,$subject,$message,$headers); //EMAIL
看看內容是否正確(可多試幾次).
也可將message 內容copy到 Editor 存成 htm檔,
用瀏覽器看內容是否正常,
如果htm檔內容正常,換個mail client 收信試試.
如果htm檔內容不正常, 換Linux web server 試試...

個人認為問題重點應該是第四點
4. 亂馬還不是每一次都相同....

我剛剛去查了一下

檔案是有UTF8格試
用筆記本開 竟然會變一團

所以我用Notepad++ 重新建立檔案
這幾天 看看是不是沒有問題??

6
aliceyeh
iT邦新手 2 級 ‧ 2009-12-15 08:55:24
  1. 你寄的是 html 的格式嗎!? 最好在 header 的地方加上
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    以防有些郵件閱讀器不認識!
  2. 為何資料不直接存 utf-8 就好了, 還要轉碼, 亂沒效率滴!
    資料庫, 網頁 charset, 郵件, 檔案的編碼最好統一.
  3. 單獨轉「雞肉口味」(字串要從資料庫抓), 看會不會變亂碼.
  4. 有可能「雞肉口味」這個「味」字根本就不是big5碼.

1.我式改成這樣子.程式碼我已經放上了

eric19740521提到:
"Content-type: text/html; charset=utf-8\r\n";

2.我是UTF-8資料...沒有設定的話.是全部都亂馬的

3.那些不是抓資料庫的...

aliceyeh iT邦新手 2 級 ‧ 2009-12-30 11:23:45 檢舉
  1. "Content-type: text/html; charset=utf-8\r\n";
    為何要加 \r\n 斷行, 這樣子沒有瀏覽器可以解讀的出來吧!?

  2. 那你的檔案一定不是存成UTF-8, 才會變亂碼, 改存 UTF-8 就不需要轉碼了。

我要發表回答

立即登入回答