March 12th, 2007

因為{自己, 朋友*}都有這樣的困擾,所以記錄下來方便以後查。

在使用 PHP 裡的 mail() 來寄信時,如果使用的不是 ASCII 或 ISO8859-1 的編碼,像主旨(Subject)或是寄件者(From:)的欄位就會變成亂碼,解決的方法就是用 BASE64 編碼一下,以下是主旨用 UTF-8 作為字元編碼的範例:

$new_subject = "=?UTF-8?B?" . base64_encode($orig_subject) . "?=";

同理,如果是寄件者的話(注意From: 一起拿去 encode 了 XD):

$from = "From: =?UTF-8?B?" . base64_encode($orig_from) . "?=\r\n\r\n"; // 兩個 \r\n 是因為 mail header 的處理方式
目前有 2 則留言
  1. Avatar 鳳梨藤:

    是嗎???

  2. Avatar chiauyun:

    [quote comment=""]大感謝 超好用的知識喔^^[/quote]

我要留言
(必填)
(必填)