PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016-09-19 00:00
681 查看
php中DOMDocument对于xml操作我们只要是英文是没有问题了,但如果是中文字体就会有乱码问题了,下面我们就此问题给各位介绍一些解决办法吧.
PHP的DOM内部是utf8机制的,在loadHTML时,是通过检查字符中meta的charset来设置编码的,如果没有charset,就当iso8859进行处理了,而这种情况下进行saveXML时,输出来的却是utf8,所以就看到乱码了.
这么说是不是还不太理解,举个例子:
打开网页执行,你会发现输出乱码了,那如何解决这个问题呢?有两种方式.
第一种:在loadHTML的时候指定编码,下面这段代码引用自php.net官方文档中的回复,代码如下:
第二种方法:通过iconv对输出的字符重新转换,代码如下:
以上所述是小编给大家介绍的PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
PHP XML操作类DOMDocument
java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion问题解决方法
asp中使用MSXML2.DOMDocument处理XML数据时的注意事项
XMLDOM对象方法:Document对象方法
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中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)PHP XML操作类DOMDocument
java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion问题解决方法
asp中使用MSXML2.DOMDocument处理XML数据时的注意事项
XMLDOM对象方法:Document对象方法
相关文章推荐
- PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
- PHP获取客户端数据保存到MySQL数据库 出现中文乱码解决方案
- PHP返回mysql数据库中文字符出现乱码问题之解决方案
- PHP返回mysql数据库中文字符出现乱码问题之解决方案
- php往XML中写入中文出现乱码的解决方案
- PHP获取客户端数据保存到MySQL数据库 出现中文乱码解决方案
- Hibernate向mysql中保存中文字符出现乱码问题的解决
- 用XMLHTTP Post/Get HTML页面时的中文乱码问题之完全Script解决方案
- C#读文件时出现中文乱码问题的解决方案
- PHP中完美解决fckeditor上传中文文件与新建中文目录出现乱码的问题
- MFC使用webbrowser时navigate的url中有中文字符,在php服务器端取得的是乱码问题的解决方案
- pyodbc连接SQL Server出现中文乱码问题的解决方案
- Struts之post提交表单出现中文乱码问题的解决方案
- PHP 中文乱码的问题解决方案,可解决80%的情况。
- 关于response.sendRedirect传递中文出现乱码问题的解决方案
- sakai修改sakai.properties的字段为中文运行后出现乱码的问题分析与解决方案!
- ASP.NET中url传递中文的解决方案,传递参数为汉字时出现乱码等问题
- jquery+jsp+servlet做$.ajax交互时出现中文乱码(字符集问题)的解决方案
- mysql中文出现乱码问题的彻底解决方案
- 用XMLHTTP Post/Get HTML页面时的中文乱码问题之完全Script解决方案