我正在使用DOMDocument解析HTML字符串。我正在用這種方式加載:如何通過DOMDocument禁用自動綁定
$dom = new DOMDocument();
$dom->loadHTML('<?xml encoding="UTF-8"><div id="container">'.$text.'</div>', LIBXML_NOENT);
然後,我正在運行一些XPath查詢和節點替換它。 (即使我註釋掉這些動作,人物仍然得到更換。)最後,我已把它是這樣的:
$parsed = $dom->saveHTML();
但DOM文檔似乎與它的實體表示來代替非ASCII字符。例如,字符串捷克語:
ěščřžýáíé
返回:
ěščřžýáíé
我不能使用html_entity_decode()
,因爲它打破已經強調,妥善逃脫的源代碼。
我該怎麼做才能禁用DOMDocument自動替換實體的非ASCII字符(所以,上面的例子也會返回ěščřžýáíé
)?
我已經做了一些挖掘,發現它取決於PHP版本,分別在libxml版本上。 – Jacob 2015-01-01 14:14:33