Я работаю над умением Amazon Echo Skill, которое основано на RSS-ленте.
Этот канал закодирован в 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"?>
Сейчас я не могу найти способ решения этой проблемы. Может быть, изменить весь канал на UTF-8. Есть идеи?
Ответ найден.
Я загрузил канал с:
$feed = file_get_contents(' .... ');
и закодировал это:
$feed = utf8_encode($feed);
$feed = str_replace('encoding="iso-8859-1"', 'encoding="utf-8"', $feed);
Теперь у меня отлично работает.
Также я изменил функцию загрузки на:
$xml = new DOMDocument('1.0', 'utf-8');
$xml->loadXML($feed);
Других решений пока нет …