手机
当前位置:查字典教程网 >编程开发 >php教程 >PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
摘要: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('<"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下MAIL的另一解决方案

PHP5.2下preg_replace函数的问题

PHP获取远程图片并保存到本地的方法

WordPress博客程序常见错误的解决方法

PHP file_get_contents函数读取远程数据超时的解决方法

PHP实现即时输出、实时输出内容方法

PHP中4种常用的抓取网络数据方法

PHP使用flock实现文件加锁的方法

PHP中路径问题的解决方案

VFP与其他应用程序的集成

精品推荐
分类导航