0
我正在下拉電子郵件中包含英文,中文和日文的電子郵件。 我正在使用PHP/EZComponents來做到這一點,但某些日本字符只是沒有通過,所以我切換到php imap_ * funcs,看看他們是否會工作。如何從imap_fetchbody解析日文字符(utf8?)?
這是我在下面,我得到的輸出。我需要以某種方式解碼......我知道這一切都很好(閱讀:過度/混亂)記錄在整個網絡上,但我沒有時間在這個時候獲得博士學位。任何幫助是極大的讚賞。
$hn='{imap.gmail.com:993/imap/ssl}INBOX';
$inbox = imap_open($hn,$username,$password,CL_EXPUNGE);
foreach($emails as $email_number) {
$ov = imap_fetch_overview($inbox,$email_number,0);
$msg = imap_fetchbody($inbox,$email_number,2);
var_dump($msg);
// doesnt work... .. but right idea?
// var_dump(utf8_decode($msg));
}
部分輸出:
<font face=3D"Arial"><span lang=3D"EN-US" style=3D"font-size:10.5pt"><br></=
span></font><font color=3D"navy" face=3D"MS Gothic"><span lang=3D"JA" style=
=3D"font-size:10.5pt">=CC=EC=9A=DD=A4=AC=A4=A4=A4=A4=A4=AB=A4=E9=A1=A2</spa=
n></font></p><p style=3D"margin-right:0pt;margin-bottom:12pt;margin-left:0p=
t">
<font color=3D"navy" face=3D"MS Gothic"><span lang=3D"JA" style=3D"font-siz=
e:10.5pt"><br></span></font></p><p style=3D"margin-right:0pt;margin-bottom:=
12pt;margin-left:0pt"><font color=3D"navy" face=3D"MS Gothic"><span lang=3D=
"JA" style=3D"font-size:10.5pt">xxend</span></font></p>
不,'utf8_decode'不是你想要的。您需要獲取電子郵件標題,解析它們,計算出消息的傳輸編碼和/或字符集(標題中標有該字符集),然後使用正確的方法將傳輸編碼解碼爲正常文本,並/或將其從任何如果需要,使用'iconv'將非UTF-8編碼轉換爲UTF-8。 – deceze
如果電子郵件全部使用UTF8,則它應該全部編碼正確(如果沒有),那麼該字符將從另一個字符集導入(它將以不同的方式編號),因此它將顯示爲不同的字符在UTF8。如果該字母是2個隨機字母,請嘗試utf8_decode。 – Lucas
我沒有時間詳細研究這個問題,但是這裏有一個粘貼(部分)舊處理腳本,用於處理特定的電子郵件附件:http://pastebin.com/5438Test。它沒有處理你的具體問題,但它在一定程度上處理了內容編碼。你必須充實一點。希望能幫助到你。 – deceze