php 解析dom后 汉字都编程类似ascii的东西了,但是网页正常显示汉字,查看源代码后成ascii的东西了
查看源代码的效果
<div class="content" contentScore="8405">
             <p>
&#12288;&#12288;&#36825;&#20004;&#20010;&#26376;&#65292;&#24494;&#20449;&#33829;&#38144;&#20687;&#30127;&#20102;&#19968;&#26679;&#22312;&#34067;&#24310;&#12290;&#25105;&#20063;&#19968;&#30452;&#22312;&#20851;&#27880;&#36825;&#20010;&#26032;&#29609;&#24847;&#65292;&#28176;&#28176;&#30340;&#65292;&#26377;&#20102;&#19968;&#20123;&#30475;&#27861;&#65292;&#20170;&#22825;&#19981;&#22952;&#20998;&#20139;&#19968;&#19979;&#12290;</p>
<p>
&#12288;&#12288;&#25105;&#20808;&#26159;&#20851;&#27880;&#20102;&ldquo;&#29579;&#21147;&#23439;&rdquo;&#65292;&#25105;&#36319;&#20182;&#35828;&#19968;&#21477;&#35805;&#65292;&#20182;&#24456;&#24555;&#22238;&#36807;&#26469;&#19968;&#38271;&#27573;&#35821;&#38899;&#65292;&#28982;&#21518;&#20877;&#35828;&#65292;&#23601;&#19981;&#25645;&#29702;&#25105;&#20102;&#12290;&#20174;&#19968;&#24320;&#22987;&#25105;&#23601;&#30693;&#36947;&#65292;&#36825;&#19968;&#23450;&#26159;&#26426;&#22120;&#20570;&#30340;&#65292;&#20986;&#20110;&#22909;&#22855;&#65292;&#25105;&#26102;&#19981;&#26102;&#36319;&#20182;&#35828;&#35828;&#35805;&#65292;&#19981;&#22823;&#26377;&#22238;&#22797;&#65292;&#26377;&#22238;&#22797;&#20063;&#26159;&#37027;&#31181;&#36319;&#35841;&#35828;&#37117;&#21487;&#20197;&#30340;&#25171;&#21704;&#21704;&#30340;&#35805;&#12290;&#26377;&#19968;&#22825;&#31361;&#28982;&#25509;&#21463;&#21040;&#29579;&#21147;&#23439;&#21457;&#26469;&#30340;&#24494;&#20449;&#65292;&#37324;&#38754;&#35828;&#20102;&#20182;&#22312;&#22025;&#20852;&#28436;&#21809;&#20250;&#30340;&#24773;&#20917;&#65292;&#25105;&#24819;&#36825;&#20063;&#26159;&#24405;&#22909;&#36890;&#36807;&#24494;&#20449;&#24179;&#21488;&#32479;&#19968;&#21457;&#36865;&#30340;&#21543;&#12290;</p>思路:把数据处理后,放到$ContentBox变量中,如果直接输出$ContentBox->nodeValue,则正常看到网页和查看源代码都正常显示,但是html标签(如div src)和图片都没了,如果将$ContentBox 复制到另一个dom里,正常查看网页也正常显示,但是查看源代码文字就成类似ascii的东西(标签和图片都没丢),复制代码如下,
$Target = new DOMDocument;
        $Target->appendChild($Target->importNode($ContentBox, true)); echo $Target->saveHTML();这是什么原因呢,如何解决

解决方案 »

  1.   

    $Target = new DOMDocument;
    你没有声明字符集,于是DOMDocument就是默认的字符集 utf-8 了
    DOMDocument会将一切他不能识别的字符用HTML实体表示
    于是就有了  &#12288;&#12288;.....
    不要拘泥,只要不影响实际效果就可以了
      

  2.   

    因为所处理的数据要给搜索引擎看,所以需要解决下那么应该如何解决呢
    我用$Target = new DOMDocument('1.0','gb2312');
    $Target = new DOMDocument('1.0','utf-8');都不行的
      

  3.   


    $Target  = new DOMDocument('1.0', 'utf-8');
    $ContentBox = $Target->importNode($ContentBox, true);echo $Target->saveXML($ContentBox);
      

  4.   

    你有
    $Target->appendChild($Target->importNode($ContentBox, true));$ContentBox 显然是 DOMElement 对象
    你得看看 $ContentBox 的内容
      

  5.   

    $Target  = new DOMDocument('1.0', 'utf-8'); $ContentBox = $Target->importNode($ContentBox, true);   echo $Target->saveXML($ContentBox);