2 votes

Flux RSS entier de iso-8859-1 en UTF-8

Je travaille sur une skill Amazon Echo, qui est basée sur un flux RSS. Ce flux est encodé en iso-8859-1, mais il doit être en UTF-8.

Comme la skill a seulement besoin de la balise dans mon cas, j'ai essayé :

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

Mais cela n'a rien fait. Aussi dans l'en-tête lorsque je charge le fichier via :

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

Il indique toujours :

Maintenant je ne trouve pas de solution pour résoudre ce problème. Peut-être changer tout le flux en UTF-8. Des idées ?

0voto

Janis Huth Points 11

Réponse trouvée. J'ai chargé le flux avec:

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

et je l'ai encodé avec:

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

Maintenant ça fonctionne bien pour moi.

J'ai également changé la fonction de chargement à:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X