用dom自动生成xml文档,里面用了个createCDATASection这个函数用来生成cdata。但是结果显示时,cdata里的中文无法显示,英文的话就可以,哪位知道怎么解决,帮帮小弟

解决方案 »

  1.   

    为什么createCDATASection()里有中文无法显示
      

  2.   

    如果文件本身是utf-8的话,直接用,如果不是,用iconv转换.
    $doc = new DOMDocument("1.0",'utf-8');$node = $doc->createElement("para");
    $data = $doc->createCDATASection("我爱PHP");
    //$data = $doc->createCDATASection(iconv('gbk','utf-8',"我爱PHP"));
    $node->appendChild($data);
    $newnode = $doc->appendChild($node);echo $doc->saveXML();
      

  3.   

    还有个请教下,就是不用这个函数的时候,比如 用dom实现 <dd>天想</dd>  这个的时候为什么中文也不能显示呢   
      

  4.   

    中文不显示,就是编码的问题.
    一定要保证且必须,操作的中文是utf-8的.
      

  5.   

    你说的是什么意思,不明白,刚学php
      

  6.   

    意思就是说,dom操作的中文要都转成utf-8
      

  7.   

    2楼不就是完整的例子吗?其实原理就是,如果你文件本身是utf-8的话,哪直接操作中文就可以了.
    如果不是,哪需要用函数,比如说iconv转换一下.$data = $doc->createCDATASection("我爱PHP");
    //$data = $doc->createCDATASection(iconv('gbk','utf-8',"我爱PHP"));