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 相关文章推荐
一个程序下载的管理程序(一)
Oct 09 PHP
如何在PHP中使用Oracle数据库(1)
Oct 09 PHP
隐性调用php程序的方法
Mar 09 PHP
最新的php 文件上传模型,支持多文件上传
Aug 13 PHP
PHP安全技术之 实现php基本安全
Sep 04 PHP
ThinkPHP之A方法实例讲解
Jun 20 PHP
thinkphp框架下实现登录、注册、找回密码功能
Apr 06 PHP
php使用curl详细解析及问题汇总
Aug 11 PHP
php 截取GBK文档某个位置开始的n个字符方法
Mar 08 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
Jun 06 PHP
浅析PHP开发规范
Feb 05 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
Oct 11 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 各种排序算法实现代码
2009/08/20 PHP
PHP的autoload自动加载机制使用说明
2010/12/28 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
深入解析JavaScript中的变量作用域
2013/12/06 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
理解javascript中的闭包
2017/01/11 Javascript
JS中正则表达式全局匹配模式 /g用法详解
2017/04/01 Javascript
NodeJS 实现手机短信验证模块阿里大于功能
2017/06/19 NodeJs
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
详细分析vue表单数据的绑定
2020/07/20 Javascript
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
[48:51]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第一场 11.28
2020/12/02 DOTA
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
Python hmac模块使用实例解析
2019/12/24 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
Python爬虫代理池搭建的方法步骤
2020/09/28 Python
Python3+Flask安装使用教程详解
2021/02/16 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
英国领先的在线旅游和休闲零售商:lastminute.com
2019/01/23 全球购物
纪念建党演讲稿范文
2014/01/13 职场文书
现场施工员岗位职责
2014/03/10 职场文书
陈欧的广告词
2014/03/18 职场文书
完美的中文自荐信
2014/05/24 职场文书
物理学专业自荐信
2014/06/11 职场文书
股东出资证明书范例
2014/10/04 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
毕业典礼主持词
2015/06/29 职场文书
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL