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

时间:2011-06-28 09:31:37

标签: php unicode localization imap

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

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

任何想法

提前致谢

2 个答案:

答案 0 :(得分:0)

由于<ESC>$B是JIS编码中的主要控制序列之一,并且您的输出开始*$B,因此您的数据似乎来自该来源。尝试使用JIS(或SJIS)的mb_convert_encoding

编辑:如果您可能接受多种编码的日语,您可以查看mb_detect_encoding函数;使用适当的编码列表。

答案 1 :(得分:0)

我只是尝试使用此代码段将 ISO-2022-JP消息解码为UTF-8 ,这对我有用。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteRule ^([^/]+)/?$ countries.php?name=$1 [L,NC]