2010-08-12 35 views
4

我獲取封未讀郵件我有我的Gmail通過PHP及其方法imap_open=?ISO-8859-1在郵件主題

佔當我打通方法imap_fetch_overview我的主題得到這樣的一些科目:

=?ISO-8859-1?Q?Informaci=F3n_Apartamento_a_la_Venta?= =?ISO-8859-1?Q?_en_Benasque(Demandas:_0442_______)?= 

這是不可讀的,我認爲是因爲它的字符編碼。

我該怎麼做才能讓它可讀?

+0

的[我如何在他們的PHP解碼與他們的編碼類型郵件標題字符串]可能重複(http://stackoverflow.com/questions/2722451/how-do-i-decode-mail-header-strings-with-their-encoding-in-them-in-php) – 2010-08-12 14:43:04

+0

是的,這是同樣的問題。我會發佈一個更詳細解答的答案。我不會刪除這個問題,因爲我認爲標題描述了更好的問題。 – 2010-08-12 14:58:48

回答

9

要獲得字符串中的UTF-8,這樣做:

$or = '=?ISO-8859-1?Q?Informaci=F3n_Apartamento_a_la_Venta?= =?ISO-8859-1?Q?_en_Benasque(Demandas:_0442_______)?='; 
mb_internal_encoding('UTF-8'); 
$v = str_replace("_"," ", mb_decode_mimeheader($or)); 

這給:

 
Información Apartamento a la Venta en Benasque(Demandas: 0442  ) 

然後,您可以convert到ISO-8859-1,如果你想。

+0

謝謝,這解決了字符引用和下劃線問題。 – 2010-08-12 15:05:23

0
$or = '=?ISO-8859-1?Q?Informaci=F3n_Apartamento_a_la_Venta?= =?ISO-8859-1?Q?_en_Benasque(Demandas:_0442_______)?='; 
mb_internal_encoding('UTF-8'); 
$v = str_replace("_"," ", mb_decode_mimeheader($or)); 

它爲我工作(感謝artefacto)