我试图用以下代码获取日语电子邮件的正文:
header('Content-Type: text/html;charset=utf-8');
$mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "***@*****.com", "*******");
$email="something@something.com";
$num_mensaje = imap_search($mbox,"FROM $email");
$body = imap_fetchbody($mbox,$num_mensaje[0],"1");
echo imap_8bit($body));
但对我不起作用,我看到了这个*$B$3$s$K$A$O!"$=$N$h$&$J
有什么想法吗
提前感谢
由于<ESC>$B
是JIS编码中的主要控制序列之一,并且您的输出以*$B
开头,因此您的数据似乎来自该源。请尝试使用JIS(或SJIS)中的mb_convert_encoding。
编辑:如果你可能接受来自多个编码的日语,你可以看看mb_detect_encoding函数;利用适当的编码列表。
我只尝试过使用此代码片段将ISO-2022-JP消息解码为UTF-8,它对我有效。
$temp = iconv_mime_decode($email['overview'][0]->subject,0,"ISO-2022-JP");
echo mb_convert_encoding($temp, "UTF-8", "JIS");