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引用符&amp;的用法详细解析
Aug 22 PHP
php实现水仙花数示例分享
Apr 03 PHP
php类的定义与继承用法实例
Jul 07 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
Dec 17 PHP
YII Framework框架教程之国际化实现方法
Mar 14 PHP
php日期操作技巧小结
Jun 25 PHP
PHP编写文件多服务器同步程序
Jul 02 PHP
php实现遍历文件夹的方法汇总
Mar 02 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
java解析json方法总结
May 16 PHP
PHP实现爬虫爬取图片代码实例
Mar 03 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
成为好程序员必须避免的5个坏习惯
2014/07/04 PHP
php自定义扩展名获取函数示例
2016/12/12 PHP
jQuery 遍历函数详解
2015/07/05 Javascript
JavaScript实现身份证验证代码
2016/02/17 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
微信小程序中hidden不生效原因的解决办法
2017/04/26 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
基于canvas粒子系统的构建详解
2017/08/31 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
js+canvas实现刮刮奖功能
2020/09/13 Javascript
跟老齐学Python之Python安装
2014/09/12 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
Python实现自动登录百度空间的方法
2017/06/10 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
如何使用Python进行OCR识别图片中的文字
2019/04/01 Python
python连接PostgreSQL数据库的过程详解
2019/09/18 Python
python 变量初始化空列表的例子
2019/11/28 Python
Django-migrate报错问题解决方案
2020/04/21 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
python实现感知机模型的示例
2020/09/30 Python
移动端HTML5开发神器之vconsole详解
2020/12/15 HTML / CSS
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
static关键字的用法
2013/10/07 面试题
一套带网友答案的.NET笔试题
2016/12/06 面试题
商场中秋节活动方案
2014/02/07 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
四查四看整改措施
2014/09/19 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python