在创建一个新的网络邮件客户端时,我不得不处理大量的邮件,其中只有一半是正确编码的!
文本通常标记为 ISO,但实际上是 UTF :/
在尝试了许多解决方案和组合之后,我找到了一种似乎对我们所有邮件都有效的方法。也许对其他人也有用。
<?php
function mime_encode($data)
{
$resp = imap_utf8(trim($data));
if(preg_match("/=\?/", $resp))
$resp = iconv_mime_decode($data, ICONV_MIME_DECODE_CONTINUE_ON_ERROR, "ISO-8859-15");
if(json_encode($resp) == 'null')
$resp = utf8_encode($resp);
return $resp;
}
?>