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 第三节 变量介绍
Apr 28 PHP
PHP按行读取文件时删除换行符的3种方法
May 04 PHP
php基于str_pad实现卡号不足位数自动补0的方法
Nov 12 PHP
ecshop后台编辑器替换成ueditor编辑器
Mar 03 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
Mar 18 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 PHP
PHP+Ajax无刷新带进度条图片上传示例
Feb 08 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
Nov 14 PHP
PHP设计模式之委托模式定义与用法简单示例
Aug 13 PHP
php提供实现反射的方法和实例代码
Sep 17 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
Oct 16 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
May 02 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
Smarty局部缓存的几种方法简介
2014/06/17 PHP
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
thinkphp框架实现数据添加和显示功能
2016/06/29 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
浅析LigerUi开发中谨慎载入common.css文件
2013/07/09 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
IE浏览器下PNG相关功能
2015/07/05 Javascript
初识Javascript小结
2015/07/16 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
NodeJS收发GET和POST请求的示例代码
2017/08/25 NodeJs
js用类封装pop弹窗组件
2017/10/08 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
layui数据表格跨行自动合并的例子
2019/09/02 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
Python Socket编程入门教程
2014/07/11 Python
Python中str.format()详解
2017/03/12 Python
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
python 读取修改pcap包的例子
2019/07/23 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
Python爬虫定时计划任务的几种常见方法(推荐)
2021/01/15 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
医学院校毕业生自荐信范文
2014/01/01 职场文书
合作协议书
2014/04/23 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
2015年机关党委工作总结
2015/05/23 职场文书
高中班主任寄语
2019/06/21 职场文书
vue实现移动端div拖动效果
2022/03/03 Vue.js
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫