PHP DOMDocument,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 Transitional // EN”“http://www.w3.org/TR/REC-html40/loose.dtd”> <html> <body> <h1 >&ldquo; </ H1> </ BODY> </ 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>
任何人都知道如何解决此问题?
你的代码示例适用于我,输出是<h1>“</h1>
。
“ <ENTITY TYPE="#8220"/> “ Left double quotation mark
二进制UTF-8序列“
是:
0xE2 (226) 0x80 (128) 0x9C (156)
| | `------ Windows-1252: œ
| `--- most Windows 125x encodings: €
`--- ISO 8859-1, 2, 3, 4, 9, 10, 14, 15, 16: â
那么你在哪里查看输出?
可能在Windows的浏览器中? 如果你的浏览器内,你有尝试添加
header('Content-Type: text/html; charset=utf-8');
在脚本的顶部?
另请参阅:设置HTTP字符集参数和检查HTTP标题。
你需要domdocument构造函数的第二个参数(checkout http://nl.php.net/manual/en/domdocument.construct.php):
$dom = new DOMDocument('1.0', 'utf-8');
链接地址: http://www.djcxy.com/p/29847.html
上一篇: PHP DOMDocument, Unicode problems
下一篇: Parsing HTML Source to extract Anchor and Link tags href value