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


Converting from DOMNodeList to string in PHP extra characters

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

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

但是现在当我打印出结果时,它包括文本在页面中的任何标签以及 &nbsp 字符:

以前:

"This is the sentence"

现在:

"h2 - This is the Âsentence Â"

任何想法如何摆脱这些字符?感谢您的任何帮助。

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

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

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

您是将输出打印到控制台还是浏览器?如果是前者,请注意某些控制台(尤其是旧版本的 Windows)根本无法很好地处理 UTF-8。如果要回显到浏览器,请确保在自己的 HTML 中将字符集设置为"UTF-8"。