【问题标题】:Convert unicode string with PHP [duplicate]用PHP转换unicode字符串[重复]
【发布时间】:2023-04-09 00:05:01
【问题描述】:

我有一个通过 API 调用获取的字符串。这是直接从 gmail 读取的电子邮件主题行。

=?UTF-8?Q?200_drones_and_a_flying_Fer?= =?UTF-8?Q?Rari_=F0=9F=8F=8E_(Typical_Drake_=F0=9F=99=8F=F0=9F=8F=BB)?=

代码:

$inbox = imap_open('{imap.gmail.com:993/imap/ssl}INBOX',$username,$password);
$overview = imap_fetch_overview($inbox,$email_number,0);
$subject = $overview[0]->subject;

应该是这样的:

200 drones and a flying Ferrari ???? (Typical Drake ????????)

有没有办法在 PHP 中将第一个转换为第二个,以便我可以在标准网页中显示它?

已经试过了

utf8_decode("=?UTF-8?Q?200_drones_and_a_flying_Fer?= =?UTF-8?Q?Rari_=F0=9F=8F=8E_(Typical_Drake_=F0=9F=99=8F=F0=9F=8F=BB)?=");

但这只是打印出没有更改的字符串。

任何帮助表示赞赏。谢谢。

【问题讨论】:

    标签: php unicode unicode-string


    【解决方案1】:

    你应该使用iconv_mime_decode()

    【讨论】:

    • 嗯,这比我在等待时编写的这个函数要干净得多 function fixEmojis($string) { $string = str_replace(" =?UTF-8?Q?", "", $细绳); $string = str_replace("=?UTF-8?Q?", "", $string); $string = str_replace("?= ", "", $string); $string = str_replace("?=", "", $string); $string = str_replace("_", " ", $string);返回 urldecode(str_replace("=", "%", $string)); }
    猜你喜欢
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 2014-01-07
    • 2020-06-26
    • 2018-05-17
    • 2014-11-02
    • 1970-01-01
    • 2011-06-09
    相关资源
    最近更新 更多