在电子邮件主题中的“=?ISO-8859-1”是什么意思?

6

我正在通过PHP及其方法imap_open获取我在GMail账户中未读邮件。

当我通过方法imap_fetch_overview获取主题时,我得到了一些像这样的主题:

=?ISO-8859-1?Q?Informaci=F3n_Apartamento_a_la_Venta?= =?ISO-8859-1?Q?_en_Benasque(Demandas:_0442_______)?=

这篇文章无法阅读,我认为是由于字符编码的问题。

要使其可读,应该怎么做呢?


可能是如何在PHP中解码带有编码类型的邮件头字符串的重复问题。 - Marcel Korpel
是的,这是同样的问题。我会发布一个答案更详细地解决方案。我不会删除这个问题,因为我认为标题更好地描述了问题。 - David Morales
2个回答

13

要获取UTF-8字符串,请执行以下操作:

$or = '=?ISO-8859-1?Q?Informaci=F3n_Apartamento_a_la_Venta?= =?ISO-8859-1?Q?_en_Benasque(Demandas:_0442_______)?=';
mb_internal_encoding('UTF-8');
$v = str_replace("_"," ", mb_decode_mimeheader($or));

这将会得到:

Benasque出售公寓信息(需求:0442)

如果需要,您可以 转换 为ISO-8859-1编码。


1
谢谢,这解决了字符编码和下划线问题。 - David Morales

-2
$or = '=?ISO-8859-1?Q?Informaci=F3n_Apartamento_a_la_Venta?= =?ISO-8859-1?Q?_en_Benasque(Demandas:_0442_______)?=';
mb_internal_encoding('UTF-8');
$v = str_replace("_"," ", mb_decode_mimeheader($or));

对我有效(谢谢artefacto)


这是与此答案中代码完全相同的副本。 - Ryan M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接