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 相关文章推荐
session在PHP大型web应用中的使用
Jun 25 PHP
PHP的异常处理类Exception的使用及说明
Jun 13 PHP
跟我学Laravel之请求与输入
Oct 15 PHP
PHP 使用redis简单示例分享
Mar 05 PHP
PHP Hash算法:Times33算法代码实例
May 13 PHP
PHP合并数组+号和array_merge的区别
Jun 25 PHP
学习PHP的数组总结【经验】
May 05 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
PHP环形链表实现方法示例
Sep 15 PHP
PHP实现数组根据某个单元字段排序操作示例
Aug 01 PHP
PHP验证类的封装与使用方法详解
Jan 10 PHP
PHP fopen函数用法实例讲解
Feb 15 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
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
PHP 一个随机字符串生成代码
2010/05/26 PHP
PHP遍历二维数组的代码
2011/04/22 PHP
yii框架通过控制台命令创建定时任务示例
2014/04/30 PHP
PHP MPDF中文乱码的解决方式
2015/12/08 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
取得传值的函数
2006/10/27 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
python采集博客中上传的QQ截图文件
2014/07/18 Python
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
Python 多线程抓取图片效率对比
2016/02/27 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
2018/04/27 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
美国电视购物HSN官网:HSN
2016/09/07 全球购物
英国美术用品购物网站:Cass Art
2019/10/08 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
中秋节礼品促销方案
2014/02/02 职场文书
总经理司机岗位职责
2014/02/06 职场文书
竞选团支书演讲稿
2014/04/28 职场文书
政府信息公开实施方案
2014/05/09 职场文书
高中课程设置方案
2014/05/28 职场文书
学校消防安全责任书
2014/07/23 职场文书
个人自我剖析材料
2014/09/30 职场文书
奖励申请报告范文
2015/05/15 职场文书
体育教师教学随笔
2015/08/15 职场文书
这样写python注释让代码更加的优雅
2021/06/02 Python
如何使用PyCharm及常用配置详解
2021/06/03 Python
Nginx配置https的实现
2021/11/27 Servers