Dom 字符(曲线引号、破折号等)显示为â;XML解析研究

Dom 字符(曲线引号、破折号等)显示为â;XML解析研究,dom,xml-parsing,rss,Dom,Xml Parsing,Rss,我正在尝试解析Guardian RSS提要()。提要包含曲线引号(“”)、破折号(-)和带有重音符号(Orbán)的字符 当我在HTML页面上解析和显示文本时,这些字符在“description”部分显示为“-(引号和破折号)、Ã(forá)”等等。如何使它们正确解析 代码 $xml=simplexml\u加载文件($link); 对于($i=0;$ichannel->item[$i]->title; $description=$xml->channel->item[$i]->descripti

我正在尝试解析Guardian RSS提要()。提要包含曲线引号(“”)、破折号(-)和带有重音符号(Orbán)的字符

当我在HTML页面上解析和显示文本时,这些字符在“description”部分显示为“-(引号和破折号)、Ã(forá)”等等。如何使它们正确解析

代码

$xml=simplexml\u加载文件($link);
对于($i=0;$i<30;$i++){
$title=$xml->channel->item[$i]->title;
$description=$xml->channel->item[$i]->description;
$count=0;
$para=”“;
$doc=新的DOMDocument();
@$doc->loadHTML($description);
而($countgetElementsByTagName('p')->item($count)->nodeValue;
}否则{
$para=$para.“

”$doc->getElementsByTagName('p')->item($count)->nodeValue; } $count++; } 回声“; 回声“$title.”; 回声“$para.”; 回声“; }
我的“头”部分有下面一行

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


标题部分显示正确。这可能是因为它们在标题中使用了直引号('),而在描述中使用了曲线(')。但正如您所看到的,在标题中也正确显示了。

问题在于加载HTML行。除非指定,否则不会将文本视为UTF-8

我换了这条线

@$doc->loadHTML($description);
@$doc->loadHTML('<?xml encoding="utf-8" ?>'.$description);
用这条线

@$doc->loadHTML($description);
@$doc->loadHTML('<?xml encoding="utf-8" ?>'.$description);
@$doc->loadHTML('.$description);