我已将来自DOMNodeLists的网页抓取结果转换为字符串:
$node = $the_sentence->item(0);
$the_sentence = "{$node->nodeName} - {$node->nodeValue}";
然而,现在当我打印出结果时,它包含了文本在页面中的任何标记以及& nbsp字符:
在:
"This is the sentence"
现在:
"h2 - This is the Âsentence Â"
我有什么想法可以摆脱这些角色?谢谢你的帮助。
答案 0 :(得分:1)
这看起来像是一个字符集问题。
查看源页面并查看它编码的字符集。这可能位于Content-Type
HTTP标头中,也可能位于<meta>
标记的开头。文献。然后,当您处理数据时,请确保您所做的一切都以相同的格式处理它。
您可能希望以UTF-8存储数据。因此,如果您以其他格式捕获,通常最好将它从该charset转换为UTF-8;这意味着您可以从各种来源捕获并将其存储在同一个数据库中。如果您想了解有关字符集转换的更多信息,请查看PHP手册中的iconv
。
您是否将输出打印到控制台或浏览器?如果是前者,请注意某些控制台(特别是旧版本的Windows)根本不能很好地处理UTF-8。如果您回复浏览器,请确保您的字符集设置为&#34; UTF-8&#34;在你自己的HTML中。