整个RSS从iso-8859-1进入UTF-8

时间:2017-04-06 10:07:20

标签: php rss alexa-skills-kit

我正在使用基于RSS Feed的Amazon Echo Skill。 此Feed以iso-8859-1编码,但需要采用UTF-8格式。

因为技能在我的情况下只需要<encoded>标签,所以我尝试了:

$content = $xml->getElementsByTagName("encoded")
                ->item($i)->nodeValue;
utf8_encode($content);

但这并没有做任何事情。当我通过以下方式加载文件时也在标题中:

$file = 'old.xml';
    $xml = new DOMDocument('1.0', 'utf-8');
    $xml->load($file);

它仍然说:<?xml version="1.0" encoding="iso-8859-1"?>

现在我无法找到解决这个问题的方法。也许将整个Feed更改为UTF-8。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Answer found. I loaded the feed with:

$feed = file_get_contents(' .... ');

and encoded it with:

$feed = utf8_encode($feed); 
$feed = str_replace('encoding="iso-8859-1"', 'encoding="utf-8"', $feed);

Now works fine for me.

Also i changed the load-function to:

$xml = new DOMDocument('1.0', 'utf-8');
$xml->loadXML($feed);