PHP SimpleXMLElement特殊字符编码/解码

PHP SimpleXMLElement特殊字符编码/解码,php,utf-8,Php,Utf 8,我在php中获得了以下xml字符串: $str="<name>An☢maly</name>"; 如果我这样做: echo $tmp->name; 我明白了: An☢maly 当我这样做时: echo utf8_decode($tmp->name); 我得到: An?maly 如何让PHP显示这个有趣的字符,它还通过以下方式实现: $tmp=new SimpleXMLElement($str); ƎnƔy™ = ?n?y? 这很奇怪,我正在做完

我在php中获得了以下xml字符串:

$str="<name>An☢maly</name>";
如果我这样做:

echo $tmp->name;
我明白了:

An☢maly
当我这样做时:

echo utf8_decode($tmp->name);
我得到:

An?maly
如何让PHP显示这个有趣的字符,它还通过以下方式实现:

$tmp=new SimpleXMLElement($str);
ƎnƔy™ = ?n?y?

这很奇怪,我正在做完全相同的事情,它在web浏览器中正确显示:

<?php
$str="<xml><name>ƎnƔy™</name></xml>";
$tmp=new SimpleXMLElement($str);
echo $tmp->name;
?>
名称;
?>
我注意到,除非我将源文件保存为UTF8编码的文件,否则它无法正常工作。我正在使用程序员的记事本,单击文件>属性,并将“Encoding”参数更改为UTF-8以实现这一点

此外,UTF8字符无法在windows命令行上正确打印,这也可能是您的问题。

请尝试使用

header('Content-type:text/html;charset=utf-8');
输出前(如果使用浏览器)


p.S:An–amly-这是当浏览器以“ISO-8859-1”字符集而不是“UTF-8”呈现页面时输出的。

这是让我困惑的浏览器。谢谢,xml文档从一开始就是UTF-8,但html没有定义。