PHP SimpleXMLElement特殊字符编码/解码

时间:2014-02-14 11:17:25

标签: php utf-8

我在php中有以下xml字符串:

$str="<name>An☢maly</name>";

然后我执行以下操作:

$tmp=new SimpleXMLElement($str);

如果我这样做:

echo $tmp->name;

我明白了:

An☢maly

当我这样做时:

echo utf8_decode($tmp->name);

我明白了:

An?maly

如何让PHP显示这个有趣的角色,它还可以使用以下内容:

ƎnƔy™ = ?n?y?

2 个答案:

答案 0 :(得分:1)

这很奇怪,我正在做同样的事情,它在网络浏览器中正确显示:

<?php
$str="<xml><name>ƎnƔy™</name></xml>";
$tmp=new SimpleXMLElement($str);
echo $tmp->name;
?>

除非我将源文件保存为UTF8编码文件,否则我注意到它无法正常工作。我正在使用程序员的记事本和点击文件&gt;属性并将'Encoding'参数更改为UTF-8以实现此目的。

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

答案 1 :(得分:1)

尝试使用

header('Content-type:text/html;charset=utf-8');

输出前(如果使用浏览器)

P.S:Anâ〜¢maly - 当浏览器在“ISO-8859-1”字符集中呈现页面而不是“UTF-8”时输出