在PHP中利用DOMDocument对xml进行保存时出现中文乱码如何解决

  介绍

在PHP中利用DOMDocument对xml进行保存时出现中文乱码如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

PHP中DOMDocument对于xml操作我们只要是英文是没有问题了,但如果是中文字体就会有乱码问题了,下面我们就此问题给各位介绍一些解决办法吧。

PHP的DOM内部是utf8机制的,在loadHTML时,是通过检查字符中元的字符集来设置编码的,如果没有字符集,就当iso8859进行处理了,而这种情况下进行saveXML时,输出来的却是utf8,所以就看到乱码了。

这么说是不是还不太理解,举个例子:

xml 美元;=,new  DOMDocument ();   @ $ xml→loadHTML (& # 39; & lt; div>我就是测试看看& lt;/div> & # 39;),,   $ dom =, new  DOMXPath ($ xml);   echo  dom→美元查询(& # 39;//div # 39;)→项目(0)→saveXML ();

<>强打开网页执行,你会发现输出乱码了,那如何解决这个问题呢?有两种方式。

第一种:在loadHTML的时候指定编码、下面这段代码引用自php.net官方文档中的回复,代码如下:

doc 美元;=,new  DOMDocument ();   $ doc→loadHTML (& # 39; & lt; ? xml 编码=癠TF-8"祝辞& # 39;,只美元html);   foreach  ($ doc→childNodes  as 美元项目)   {   if (美元项→nodeType ==, XML_PI_NODE)   {   $ doc→作用是:$ item);,//remove 黑客   }   }=$ doc→encoding  & # 39; utf - 8 # 39;,,//, insert 适当的

第二种方法:通过iconv对输出的字符重新转换,代码如下:

echo  iconv (“UTF-8",,“GB18030//TRANSLIT",, dom→美元saveXML ($ n),),

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

在PHP中利用DOMDocument对xml进行保存时出现中文乱码如何解决