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的开合式多级菜单程序
Oct 09 PHP
用PHP+java实现自动新闻滚动窗口
Oct 09 PHP
PHP 编程请选择正确的文本编辑软件
Dec 21 PHP
php在字符串中查找另一个字符串
Nov 19 PHP
PHP中文件上传的一个问题
Sep 04 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
May 09 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
Feb 18 PHP
PHP实现带重试功能的curl连接示例
Jul 28 PHP
php mysql like 实现多关键词搜索的方法
Oct 29 PHP
php 浮点数比较方法详解
May 05 PHP
php成功操作redis cluster集群的实例教程
Jan 13 PHP
php更新cookie内容的详细方法
Sep 30 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
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
Use Word to Search for Files
2007/06/15 Javascript
javascript下查找父节点的简单方法
2007/08/13 Javascript
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
jQuery页面图片伴随滚动条逐渐显示的小例子
2013/03/21 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
如何使用AngularJs打造权限管理系统【简易型】
2016/05/09 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
Vue侦测相关api的实现方法
2019/05/22 Javascript
浅谈react-router@4.0 使用方法和源码分析
2019/06/04 Javascript
基于ssm框架实现layui分页效果
2019/07/27 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
Django自定义分页与bootstrap分页结合
2021/02/22 Python
python web基础之加载静态文件实例
2018/03/20 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
安卓程序员求职信
2014/02/28 职场文书
交警个人先进事迹材料
2014/05/11 职场文书
市场部岗位职责范本
2015/04/15 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android