欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP 中 DOMDocument保存xml時(shí)中文出現(xiàn)亂碼問(wèn)題的解決方案

 更新時(shí)間:2016年09月19日 08:54:29   投稿:mrr  
這篇文章主要介紹了PHP 中 DOMDocument保存xml時(shí)中文出現(xiàn)亂碼問(wèn)題的解決方案,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

php中DOMDocument對(duì)于xml操作我們只要是英文是沒(méi)有問(wèn)題了,但如果是中文字體就會(huì)有亂碼問(wèn)題了,下面我們就此問(wèn)題給各位介紹一些解決辦法吧.

PHP的DOM內(nèi)部是utf8機(jī)制的,在loadHTML時(shí),是通過(guò)檢查字符中meta的charset來(lái)設(shè)置編碼的,如果沒(méi)有charset,就當(dāng)iso8859進(jìn)行處理了,而這種情況下進(jìn)行saveXML時(shí),輸出來(lái)的卻是utf8,所以就看到亂碼了.

這么說(shuō)是不是還不太理解,舉個(gè)例子:

$xml = new DOMDocument();
@$xml->loadHTML('<div>我就是測(cè)試看看</div>'); 
$dom = new DOMXPath($xml);
echo $dom->query('//div')->item(0)->saveXML();

打開(kāi)網(wǎng)頁(yè)執(zhí)行,你會(huì)發(fā)現(xiàn)輸出亂碼了,那如何解決這個(gè)問(wèn)題呢?有兩種方式.

第一種:在loadHTML的時(shí)候指定編碼,下面這段代碼引用自php.net官方文檔中的回復(fù),代碼如下:

$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

第二種方法:通過(guò)iconv對(duì)輸出的字符重新轉(zhuǎn)換,代碼如下:

echo iconv("UTF-8", "GB18030//TRANSLIT", $dom->saveXML($n) );

以上所述是小編給大家介紹的PHP 中 DOMDocument保存xml時(shí)中文出現(xiàn)亂碼問(wèn)題的解決方案,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論