从DOMNodeList转换为PHP额外字符的字符串

时间:2013-11-05 11:34:30

标签: php string xpath

我已将来自DOMNodeLists的网页抓取结果转换为字符串:

$node = $the_sentence->item(0);
$the_sentence = "{$node->nodeName} - {$node->nodeValue}";

然而,现在当我打印出结果时,它包含了文本在页面中的任何标记以及& nbsp字符:

在:

"This is the sentence"

现在:

"h2 - This is the Âsentence Â"

我有什么想法可以摆脱这些角色?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

这看起来像是一个字符集问题。

查看源页面并查看它编码的字符集。这可能位于Content-Type HTTP标头中,也可能位于<meta>标记的开头。文献。然后,当您处理数据时,请确保您所做的一切都以相同的格式处理它。

您可能希望以UTF-8存储数据。因此,如果您以其他格式捕获,通常最好将它从该charset转换为UTF-8;这意味着您可以从各种来源捕获并将其存储在同一个数据库中。如果您想了解有关字符集转换的更多信息,请查看PHP手册中的iconv

您是否将输出打印到控制台或浏览器?如果是前者,请注意某些控制台(特别是旧版本的Windows)根本不能很好地处理UTF-8。如果您回复浏览器,请确保您的字符集设置为&#34; UTF-8&#34;在你自己的HTML中。