2

我正在使用 Symfony2 Crawler - Bundle 来使用 XPath。一切正常,除了编码。

我想使用 UTF-8 编码,而 Crawler 不知何故没有使用它。我注意到因为 th 被转换为 ,这是一个已知问题:UTF-8 Encoding Issue

我的问题是:如何强制 Symfony Crawler 使用 UTF-8 编码?

这是我正在使用的代码:

$dom_input = new \DOMDocument("1.0","UTF-8");
$dom_input->encoding = "UTF-8";
$dom_input->formatOutput = true;

$dom_input->loadHTMLFile($myFile);

$crawler = new Crawler($dom_input); 
$paragraphs = $crawler->filterXPath('descendant-or-self::p');

而现在,当我在做

foreach($paragraphs as $paragraph) {
    var_dump($paragraph->nodeValue);
}

只要我的 段落中有一个,我就会得到 .

非常感谢您提前。

4

1 回答 1

5

感谢@halfer,我找到了一种解决方法:

而不是使用

$crawler = new Crawler($dom_input);

我用了:

$crawler = new Crawler();
$crawler->addHtmlContent(utf8_decode($dom_input->saveXML()));
于 2013-10-10T11:12:56.287 回答