从IMAP电子邮件正文中读取日语字符


Reading japanese characters from the body of an IMAP E-Mail

我试图用以下代码获取日语电子邮件的正文:

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");