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


Posted in PHP onSeptember 19, 2016

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

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

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

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

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

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

$doc = new DOMDocument();
$doc->loadHTML('<?xml encoding="UTF-8">' . $html);
foreach ($doc->childNodes as $item)
{
if ($item->nodeType == XML_PI_NODE)
{
$doc->removeChild($item); // remove hack
}
}
$doc->encoding = 'UTF-8'; // insert proper

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

echo iconv("UTF-8", "GB18030//TRANSLIT", $dom->saveXML($n) );

以上所述是小编给大家介绍的PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
php&amp;java(三)
Oct 09 PHP
php 发送带附件邮件示例
Jan 23 PHP
destoon出现验证码不显示时的紧急处理方法
Aug 22 PHP
php使用post数组的键值创建同名变量并赋值的方法
Apr 03 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
Jul 04 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
Aug 11 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
May 12 PHP
PHP通过GD库实现验证码功能示例
Feb 23 PHP
PHP 7.4 新语法之箭头函数实例详解
May 09 PHP
yii2的restful api路由实例详解
May 14 PHP
laravel 错误处理,接口错误返回json代码
Oct 25 PHP
关于PHP数组迭代器的使用方法实例
Nov 17 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 #PHP
PHP 接入支付宝即时到账功能
Sep 18 #PHP
PHP 等比例缩放图片详解及实例代码
Sep 18 #PHP
php mysql 封装类实例代码
Sep 18 #PHP
thinkphp自带验证码全面解析
Sep 18 #PHP
php操纵mysqli数据库的实现方法
Sep 18 #PHP
php微信公众账号开发之前五个坑(一)
Sep 18 #PHP
You might like
在PHP中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
Jquery 学习笔记(一)
2009/10/13 Javascript
详细讲解JS节点知识
2010/01/31 Javascript
jquery 注意事项与常用语法小结
2010/06/07 Javascript
Json和Jsonp理论实例代码详解
2013/11/15 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
node.js操作mysql简单实例
2017/05/25 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
Bootstrap 中data-[*] 属性的整理
2018/03/13 Javascript
Vue使用axios出现options请求方法
2019/05/30 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
Vue实现todo应用的示例
2021/02/20 Vue.js
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
Python中join和split用法实例
2015/04/14 Python
python中kmeans聚类实现代码
2018/02/23 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
在django中实现choices字段获取对应字段值
2020/07/12 Python
Charlotte Tilbury美国官网:英国美妆品牌
2017/10/13 全球购物
大学生村官心得体会范文
2014/01/04 职场文书
物理系毕业生自荐书范文
2014/02/22 职场文书
小学评语大全
2014/04/22 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
2014年办公室个人工作总结
2014/11/12 职场文书
门市房租房协议书
2014/12/04 职场文书
个人思想政治总结
2015/03/05 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书
导游词之上海豫园
2019/10/24 职场文书
react如何快速设置文件路径别名
2021/04/28 Javascript