PHP DOMDocument,Unicode 问题
我这里有一些问题
$source = "<html><body><h1>“</h1></body></html>";
$dom = new DOMDocument();
$dom->loadHTML($source);
echo $dom->saveHTML();
输出:
“
好的,这可以正常工作。 但是如果我想像这样提取节点
$source = "<html><body><h1>“</h1></body></html>";
$dom = new DOMDocument();
$dom->loadHTML($source);
$h1 = $dom->getElementsByTagName('h1');
echo $dom->saveHTML($h1->item(0));
它会输出无法识别的文本。
“
有人知道如何解决这个问题吗?
I have some problem here
$source = "<html><body><h1>“</h1></body></html>";
$dom = new DOMDocument();
$dom->loadHTML($source);
echo $dom->saveHTML();
Output:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><h1>“</h1></body></html>
Ok, this work correctly.
But if I want to extract the nodes like this
$source = "<html><body><h1>“</h1></body></html>";
$dom = new DOMDocument();
$dom->loadHTML($source);
$h1 = $dom->getElementsByTagName('h1');
echo $dom->saveHTML($h1->item(0));
It output unrecognized text.
<h1>“</h1>
Anyone know how to solve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的代码示例适用于我,输出为
“
。
“
的二进制 UTF-8 序列是:那么您在哪里查看该输出?
可能在 Windows 上的浏览器中?如果在您的浏览器中,您是否尝试过
在脚本之上添加?
另请参阅:设置 HTTP 字符集参数 和 检查 HTTP 标头。
Your code example works for me, output is
<h1>“</h1>
.Binary UTF-8 sequence of
“
is:So where do you view that output?
Probably inside your browser on windows? If inside your browser, have you tried adding
on top of your script?
See also: Setting the HTTP charset parameter and Checking HTTP Headers.
您需要 domdocument 构造函数的第二个参数(查看 http://nl.php。 net/manual/en/domdocument.construct.php):
you need the second parameter of the domdocument constructor (checkout http://nl.php.net/manual/en/domdocument.construct.php):