2013-04-22 107 views
-3

我得到一个进这样..的SimpleXML与HTML实体=奇怪的字符

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

在这种饲料我得到的一个项目包含HTML实体,这对“连字符实体“,这是–

然而,当这从SimpleXML返回时,我得到的是一个–。我已阅读SO &上的其他类似问题,以确保您的页面设置为UTF-8;虽然不知道这将如何阻止SimpleXML返回奇怪的字符?

任何我有这个页面上哪种方式的数据输出上:

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

我能在这里做才能得到正确的实体?

回答

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"; 
+0

谢谢你的解释。这个窍门! :) – Brett 2013-04-22 14:59:35