謝謝提供的好方法dayto 寫:很多人都會提到網站UTF-8化之後,phpbb寄出的信在webmail上主旨會變成亂碼,當然小弟也是\r
後來在其他php網站找到一個好用的function,那就是iconv()函數,至於怎麼改請往下看
環境需求PHP版本 >= 4.0.5 而且有把iconv模組編譯進去
適用版本:2.0.13(因為我是用2.0.13啦,其他版本應該也行)
適用語系:正體中文
修改方式:
如果您的網站是簡體中文請把代碼: 選擇全部
# #-----[OPEN]---------- # includes/emailer.php # #-----[ FIND 尋找]--------------------------------------------- # $result = smtpmail($to, $this->subject, $this->msg, $this->extra_headers); # #-----[ BEFORE, ADD 之前,?#91;上]--------------------------------------------- # $this->subject = iconv('UTF-8','Big5',$this->subject); # #-----[ FIND 尋找]--------------------------------------------- # $result = @mail($to, $this->subject, preg_replace("#(?<! ) #s", " ", $this->msg), $this->extra_headers); # #-----[ BEFORE, ADD 之前,?#91;上]--------------------------------------------- # $this->subject = iconv('UTF-8','Big5',$this->subject); # #-----[ SAVE/CLOSE ALL FILES 儲存/關閉所有檔案 ]------------------- # # EoM 修正結束 #
改成代碼: 選擇全部
$this->subject = iconv('UTF-8','Big5',$this->subject);
經過以上修正之後,在yahoo的web mail上看信就不會變成亂碼了代碼: 選擇全部
$this->subject = iconv('UTF-8','GB2312',$this->subject);
不過這種方式比較適合採用單一語系的網站,如果是多語系共存的
還是會出問題
經測試,確實可以讓標題不會亂碼\r
不過在hotmail上面\r
標題可以正確,但是進去內容後
內容(UTF-8)卻是亂碼了,這時改選此頁的編碼方式,卻不work
仍會停在big5
不過在gmail跟yahoo mail上,標題跟內容都可以正常顯示
我想可能要更進一步的功能判斷\r
讓標題跟內文都同一編碼,才能解決我目前在hotmail上遇到的問題
謝謝