繁体   English   中英

如何在PHP中从IMAP检索Unicode字符?

[英]How can I retrieve Unicode characters from IMAP in PHP?

我正在尝试使用PHP解析部分用英语书写和部分用日语书写的电子邮件。 这是我到目前为止的代码:

if ($mbox = imap_open($mailbox, $username, $password)) {

    $inbox = imap_check($mbox);
    $total = (int) $inbox->Nmsgs;
    $min = max(1, $total - 10);

    // fetch 10 most recent emails
    if ($total > 0 && ($emails = imap_fetch_overview($mbox, "{$min}:{$total}"))) {

        foreach ($emails as $email) {

            $body = imap_body($mbox, $email->uid, FT_UID);

            // for testing purposes
            echo $body;

            // parsing logic here

        }
    }
}

如您所见,我只是回显电子邮件的纯文本主体,只是为了测试,而这是运行此脚本时得到的回显响应的一部分:

您今天的日语单词是:ç”·ã®å

但是,基于电子邮件中的实际内容,以下是我应该看到的内容:

您今天的日语单词是:男の子

很明显,翻译中有些东西正在丢失(双关语意)。 我正在使用一些简单的字符串操作来尝试解析日语字符,然后将它们插入MySQL数据库。 但是,它当前正在插入这些gobbledygook字符。 我想念什么?

编辑:我正在使用PHP 5.4.45版本

因此,我不太确定如何在PHP 5中使用它。我决定尝试将服务器升级到PHP 7,突然所有代码都开始起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM