我这里有一些问题PHP DOM文档,Unicode的问题
$source = "<html><body><h1>“</h1></body></html>";
$dom = new DOMDocument();
$dom->loadHTML($source);
echo $dom->saveHTML();
输出:
< DOCTYPE HTML PUBLIC " - // W3C // DTD HTML 4.0过渡// EN " " HTTP ://www.w3.org/TR/REC-html40/loose.dtd " > <html> <body> <h1> & ldquo; </H1 > < /身体> </HTML >
好吧,这正常工作。 但是,如果我想提取的节点这样
$source = "<html><body><h1>“</h1></body></html>";
$dom = new DOMDocument();
$dom->loadHTML($source);
$h1 = $dom->getElementsByTagName('h1');
echo $dom->saveHTML($h1->item(0));
它的输出无法识别的文本。
<H1>“</H1 >
有谁知道如何解决这个问题?
所有这些DOM函数都会返回UTF-8编码的字符串,更好地检查手册。没有什么可解决的,只是为了正确显示,例如通过正确配置您的响应标题或使用浏览器中的菜单来告诉您的浏览器,如果您不知道如何自动告知浏览器,您可以指定字符集编码。见http://www.webstandards.org/learn/articles/askw3c/dec2002/ – hakre 2012-02-23 14:37:04