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