2013-06-19 83 views
1

簡單的代碼,應該可以在任何網址(從我的意見)工作:如何修復saveHTML():由於轉換錯誤導致輸出轉換失敗?

我不知道爲什麼我會得到以下警告。任何想法 ?

PHP警告:DOM文檔:: saveHTML()方法:輸出轉換失敗由於CONV誤差,字節0xE9 0x74 0xC3 0xA9在******** PHP第9行

$content = file_get_contents('http://www.ludibay.net/'); 
$encoding = mb_detect_encoding($content); 
$doc = new DomDocument(); 

$res = @$doc->loadHTML('<?xml encoding="'.$encoding.'">'.$content); 
//some treatment on nodes here 
echo $doc->saveHTML(); 
+0

如果你實際上_tell_ DOMDocument是什麼,會發生什麼? ('$ doc = new DomDocument('1.0',$ encoding);') – Wrikken

+0

並且使用'libxml_use_internal_errors(true)'而不是'@'? –

+0

檢測到的編碼是utf-8,當我添加你建議的Wrikken時,沒有行爲改變 – user2417355

回答

2

你是否試圖強制UTF-8 encoding,它從iso-8859-1轉換爲UTF-8?我剛纔有一個類似的問題,它對我有用。也許嘗試:

$content = file_get_contents('http://www.ludibay.net/'); 
$content = utf8_encode($content); // convert $content to utf_8 
$encoding = mb_detect_encoding($content); 
$doc = new DomDocument(); 

$res = @$doc->loadHTML('<?xml encoding="'.$encoding.'">'.$content); 
//some treatment on nodes here 
echo $doc->saveHTML();