SimpleXML& html entities =奇怪的字符

时间:2013-04-22 09:29:03

标签: php utf-8 simplexml html-entities

我正在收到这样的饲料..

$posts = new SimpleXMLElement(WP_ROOT_URL . 'feed/', 0, true);

在这个Feed中,我得到的一个项目包含一个html实体,它是“连字符”的实体,即–

然而,当从SimpleXML返回时,我得到的是–。我已经阅读了关于SO& S的其他类似问题。一些提及,以确保您的网页设置为UTF-8;虽然不确定这将如何阻止SimpleXML返回奇怪的角色?

我在网页上输出数据的方式是:

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

我可以在这做什么来获得正确的实体?

1 个答案:

答案 0 :(得分:2)

在PHP字符串中没有统一或托管编码,因此您不能将它们视为包含字符而是字节。结果始终包含字节0xE28093,只有解释更改。您可以通过在结果上调用bin2hex()来查看此内容。

在Windows-1252中解释的字节为–,以UTF-8解释,它们以形式出现。

如果您在网页上回应这个问题,那么您可以通过以下方式让浏览器以UTF-8解释您的输出:

<?php
header("Content-Type: text/html; charset=UTF-8"); //Put this before any output
echo "stuff";