php 解析dom后 汉字都编程类似ascii的东西了,但是网页正常显示汉字,查看源代码后成ascii的东西了
查看源代码的效果
<div class="content" contentScore="8405">
<p>
  这两个月,微信营销像疯了一样在蔓延。我也一直在关注这个新玩意,渐渐的,有了一些看法,今天不妨分享一下。</p>
<p>
  我先是关注了“王力宏”,我跟他说一句话,他很快回过来一长段语音,然后再说,就不搭理我了。从一开始我就知道,这一定是机器做的,出于好奇,我时不时跟他说说话,不大有回复,有回复也是那种跟谁说都可以的打哈哈的话。有一天突然接受到王力宏发来的微信,里面说了他在嘉兴演唱会的情况,我想这也是录好通过微信平台统一发送的吧。</p>思路:把数据处理后,放到$ContentBox变量中,如果直接输出$ContentBox->nodeValue,则正常看到网页和查看源代码都正常显示,但是html标签(如div src)和图片都没了,如果将$ContentBox 复制到另一个dom里,正常查看网页也正常显示,但是查看源代码文字就成类似ascii的东西(标签和图片都没丢),复制代码如下,
$Target = new DOMDocument;
$Target->appendChild($Target->importNode($ContentBox, true)); echo $Target->saveHTML();这是什么原因呢,如何解决
查看源代码的效果
<div class="content" contentScore="8405">
<p>
  这两个月,微信营销像疯了一样在蔓延。我也一直在关注这个新玩意,渐渐的,有了一些看法,今天不妨分享一下。</p>
<p>
  我先是关注了“王力宏”,我跟他说一句话,他很快回过来一长段语音,然后再说,就不搭理我了。从一开始我就知道,这一定是机器做的,出于好奇,我时不时跟他说说话,不大有回复,有回复也是那种跟谁说都可以的打哈哈的话。有一天突然接受到王力宏发来的微信,里面说了他在嘉兴演唱会的情况,我想这也是录好通过微信平台统一发送的吧。</p>思路:把数据处理后,放到$ContentBox变量中,如果直接输出$ContentBox->nodeValue,则正常看到网页和查看源代码都正常显示,但是html标签(如div src)和图片都没了,如果将$ContentBox 复制到另一个dom里,正常查看网页也正常显示,但是查看源代码文字就成类似ascii的东西(标签和图片都没丢),复制代码如下,
$Target = new DOMDocument;
$Target->appendChild($Target->importNode($ContentBox, true)); echo $Target->saveHTML();这是什么原因呢,如何解决
你没有声明字符集,于是DOMDocument就是默认的字符集 utf-8 了
DOMDocument会将一切他不能识别的字符用HTML实体表示
于是就有了   .....
不要拘泥,只要不影响实际效果就可以了
我用$Target = new DOMDocument('1.0','gb2312');
$Target = new DOMDocument('1.0','utf-8');都不行的
$Target = new DOMDocument('1.0', 'utf-8');
$ContentBox = $Target->importNode($ContentBox, true);echo $Target->saveXML($ContentBox);
$Target->appendChild($Target->importNode($ContentBox, true));$ContentBox 显然是 DOMElement 对象
你得看看 $ContentBox 的内容