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 相关文章推荐
建立动态的WML站点(二)
Oct 09 PHP
PHP日期时间函数的高级应用技巧
May 16 PHP
PHP 开发环境配置(Zend Studio)
Apr 28 PHP
PHP反射使用实例和PHP反射API的中文说明
Jul 02 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
Sep 23 PHP
Yii实现多按钮保存与提交的方法
Dec 03 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
Jul 01 PHP
9个比较实用的php代码片段
Mar 15 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
Oct 14 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
Dec 13 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 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 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
请离开include_once和require_once
2013/07/18 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
利用PHP生成静态html页面的原理
2016/09/30 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
高性能的javascript之加载顺序与执行原理篇
2018/01/14 Javascript
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
JS在if中的强制类型转换方式
2018/07/15 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
javascript 内存模型实例详解
2020/04/18 Javascript
[46:55]Ti4 冒泡赛第二轮 LGD vs C9
2014/07/14 DOTA
[45:59]EG vs OG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
举例区分Python中的浅复制与深复制
2015/07/02 Python
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
python logging日志模块的详解
2017/10/29 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
通过Python模块filecmp 对文件比较的实现方法
2018/06/29 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
Python模拟登录之滑块验证码的破解(实例代码)
2019/11/18 Python
lookfantastic荷兰:在线购买奢华护肤、护发和化妆品
2018/11/27 全球购物
Servlet面试题库
2015/07/18 面试题
酒店执行总经理岗位职责
2013/12/15 职场文书
大学毕业感言200字
2014/03/09 职场文书
检举信的格式及范文
2014/04/04 职场文书
环保建议书300字
2014/05/14 职场文书
员工安全承诺书
2014/05/22 职场文书
西柏坡导游词
2015/02/05 职场文书
运动与健康自我评价
2015/03/09 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
同意报考证明
2015/06/17 职场文书
Html5调用企业微信的实现
2021/04/16 HTML / CSS