2013-06-19 38 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();