在 PHP 中读取编码错误的外部 XML 文件


Read in PHP an external XML file with a wrong encoding

我试图从这个 xml http://www.leprogres.fr/football/ol/rss file_get_contents(),但在我看来,这个 xml 文件发送了错误的信息。

事实上,当我查看标头响应和 xml encoding 属性时,两者都说UTF-8(我认为它应该是类似 ISO-8859-1 ),但我的file_get_contents()没有按应有的方式返回提要,例如:

里昂奥林匹克行动 – 现场直播 leprogres.fr、视频直播、视频直播 |《进步报》

成为:

© 里昂奥林匹克运动会的现场直播,视频©,直播,里奥 leprogres.fr,©里昂,里奥Le Progrã ̈s'

我越接近预期的结果是使用 forceutf8,但它不会转换所有字符,例如这里的破折号和稍后在 xml 文档中的撇号被转换为问号。

file_get_contents正确的

编码对我有用,但您可以使用以下内容作为替代方案:

header('Content-Type: text/html; charset=utf-8');
$xml = simplexml_load_file("http://www.leprogres.fr/football/ol/rss");
echo $xml->channel->title;

输出

Actualité de l'Olympique Lyonnais – live, vidéo, résultat avec leprogres.fr | Le Progrès