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 相关文章推荐
用Socket发送电子邮件
Oct 09 PHP
一个odbc连mssql分页的类
Oct 09 PHP
关于php fread()使用技巧
Jan 22 PHP
php去掉字符串的最后一个字符附substr()的用法
Mar 23 PHP
php中++i 与 i++ 的区别
Aug 08 PHP
PHP 微信支付类 demo
Nov 30 PHP
PHP实现图片上传并压缩
Dec 22 PHP
PHP实现多关键字加亮功能
Oct 21 PHP
Laravel中的Blade模板引擎示例详解
Oct 10 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
Apr 04 PHP
PHP的JSON封装、转变及输出操作示例
Sep 27 PHP
PHP7生产环境队列Beanstalkd用法详解
May 19 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
关于PHP5 Session生命周期介绍
2010/03/02 PHP
php图像处理类实例
2015/07/28 PHP
php使用imagecopymerge()函数创建半透明水印
2018/01/25 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
2019/08/23 PHP
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
JavaScript模拟push
2016/03/06 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
layui导航栏实现代码
2017/05/19 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
react 国际化的实现代码示例
2018/09/14 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
火车票抢票python代码公开揭秘!
2018/03/08 Python
selenium+python实现自动化登录的方法
2018/09/04 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
python使用pygame框架实现推箱子游戏
2018/11/20 Python
Python3将jpg转为pdf文件的方法示例
2019/12/13 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
毕业生自我鉴定
2013/12/04 职场文书
优秀大学生的自我评价
2014/01/16 职场文书
综治宣传月活动总结
2014/04/28 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
ktv好的活动方案
2014/08/17 职场文书
一份文言文检讨书
2014/09/13 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
教育教学读书笔记
2015/07/02 职场文书
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL