php处理电子邮件主题与mb_decode_mimeheader,添加到SimpleXML对象和asXML输出错误的字符

时间:2017-04-12 21:47:30

标签: php character-encoding simplexml

我正在使用脚本处理电子邮件。

在处理编码的主题时,我遇到了一个奇怪的问题。

这是我的测试源代码:

<?php
$original='=?UTF-8?B?UHJvYsOzIE3DoXMgVmVjZXM=?=';
$decoded = mb_decode_mimeheader($original);

$obj = new SimpleXMLElement('<' . '?' . 'xml version="1.0" standalone="yes" ?' .'><request></request>');
$obj->addChild('subject', $decoded);

print_r($obj);

print "<br><br>";

print $obj->asXML();
?>

这是它产生的输出(输出源代码):

SimpleXMLElement Object
(
[subject] => Probó Más Veces
)
<br><br><?xml version="1.0" standalone="yes"?>
<request><subject>Prob&#xE0361;s Veces</subject></request>

正如您所看到的,在SimpleXML对象中,主题是正确的“ProbóMásVeces”,但在asXML输出中,它已被转换为:Prob?sVeces。

为什么会出现这样的问题以及如何解决这个问题?

谢谢!

0 个答案:

没有答案