这篇文章主要介绍了PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案,非常不错,具有参考借鉴价值,需要的朋友可以参考下

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时中文出现乱码问题的解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对爱安网网站的支持!

最新资讯
特斯拉市值暴涨:马斯克身家超巴菲特成全球第七大富豪

特斯拉市值暴涨:马斯

刚刚,特斯拉股价再度暴涨,连股神巴菲特也被马斯克“超越
理想汽车申请赴美IPO 2020年第一季度净亏损7711.3万元

理想汽车申请赴美IPO

2020年第一季度,理想汽车实现营收8.52亿元人民币,对应毛
苹果CEO库克2019年薪酬总额超过1.33亿美元

苹果CEO库克2019年薪

库克几乎所有的薪酬都是以股票奖励和相关绩效奖金的形
电竞工作者不单单是打游戏 或成为年轻人择业的新蓝海

电竞工作者不单单是打

高校毕业生就业统计相关指标,其中比较引人注目的一点是
理想汽车申请赴美IPO 李想和王兴分列第一第二大股东

理想汽车申请赴美IPO

李想是理想汽车的最大自然人股东,持有约3.56亿股,约占总
6月国内手机出货量2863.0万部 5G手机占比超六成

6月国内手机出货量286

据中国信通院最新发布的报告,2020年6月,国内手机市场总
最新文章
Laravel框架Blade模板简介及模板继承用法分析

Laravel框架Blade模板

这篇文章主要介绍了Laravel框架Blade模板简介及模板继
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】

Laravel框架基础语法

这篇文章主要介绍了Laravel框架基础语法与知识点整理,
Laravel框架Eloquent ORM删除数据操作示例

Laravel框架Eloquent

这篇文章主要介绍了Laravel框架Eloquent ORM删除数据
Laravel框架下载,安装及路由操作图文详解

Laravel框架下载,安装

这篇文章主要介绍了Laravel框架下载,安装及路由操作,结
Laravel框架Eloquent ORM修改数据操作示例

Laravel框架Eloquent

这篇文章主要介绍了Laravel框架Eloquent ORM修改数据
Laravel框架控制器,视图及模型操作图文详解

Laravel框架控制器,视

这篇文章主要介绍了Laravel框架控制器,视图及模型操作,