2012-07-11 132 views
0

我在PHP中有一個應用程序,它可以接收多種語言的郵件,因此具有不同的字符集。一旦我獲取郵件,它應該以UTF-8編碼的形式存儲在數據庫中。PHP在郵件中支持多種語言

例如,我收到一封郵件,用法語「Une bonnejournée,tout le monde!」 charset:ISO-8859-1或韓文「좋은일,세계!」字符集:EUC-KR。 現在我正在閱讀使用Zend Imap API的郵件,然後使用iconv($ charset,'UTF-8 // TRANSLIT',$ part)將其轉換爲編碼UTF-8。 $ charset是從郵件中解析出來的。

但我仍然無法達到正確的結果。請讓我知道什麼是解決方案

+0

'但我仍然無法達到正確的結果 - 你會得到什麼結果?他們以何種方式不正確? – DaveRandom 2012-07-11 11:56:57

+0

在db的法語中,我只得到「Une bonne journ」,對於韓文來說它是空的空間。結果應該是完整的文字 – 2012-07-11 11:59:21

+0

'// TRANSLIT'沒有在玩遊戲 - ['否則,從第一個非法角色開始刪除str,並生成E_NOTICE](http://www.php.net) /manual/en/function.iconv.php) - 打開錯誤報告('error_reporting(E_ALL); ini_set('display_errors',1);' - 你看到上述的'E_NOTICE'嗎? – DaveRandom 2012-07-11 12:05:26

回答

0

對我來說,答案是在我的臉上。

但是,正確地說,UTF-8編碼的許多例子都是UTF-8編碼,我看到的例子都有逃避或錯誤地演示瞭如何爲PEAR Mail函數執行此操作。

下面是我用來定義我的標題的這一行,以解決這個問題。

$headers = array ( 
     'Content-Type' => 'text/plain; charset=UTF-8', 
     'From' => $from, 
     'To' => $to, 
     'Subject' => $subject); 

希望幫助別人救2小時我只花挖這個!