加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案

发布时间:2020-12-12 21:43:20 所属栏目:PHP教程 来源:网络整理
导读:php中DOMDocument对于xml操作我们只要是英文是没有问题了,但如果是中文字体就会有乱码问题了,下面我们就此问题给各位介绍一些解决办法吧. PHP的DOM内部是utf8机制的,在loadHTML时,是通过检查字符中meta的charset来设置编码的,如果没有charset,就当iso8859进

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

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

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

loadHTML('
我就是测试看看
'); $dom = new DOMXPath($xml); echo $dom->query('//div')->item(0)->saveXML();

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

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

loadHTML('childNodes as $item) { if ($item->nodeType == XML_PI_NODE) { $doc->removeChild($item); // remove hack } } $doc->encoding = 'UTF-8'; // insert proper

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

saveXML($n) );

以上所述是小编给大家介绍的PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案。编程之家 52php.cn 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读