Ein UTF-8 basierter RSS-Feed soll auf einer Site mit ISO-8859-1 Kodierung gerendert werden.
An der Kodierung soll festgehalten werden.
Ich gebe dem xml Parser beim Erstellen explizit das Encoding der Quelle an:
$xml_parser = xml_parser_create(“UTF-8”);
Die so empfangenen Zeichen kann ich jedoch nicht direkt ausgeben, weil die Site ja in ISO-8859-1 ausgegeben wird. Diverse Sonderzeichen werden als Fragezeichen dargestellt.
Abhilfe schafft dieser Workaround:
echo mb_convert_encoding($text, ‘HTML-ENTITIES’, “UTF-8”);
Weiterführende Artikel:
FAQ: Changing (X)HTML page encoding to UTF-8
de.php.net/mbstring
Um xml-konform arbeiten zu können, reicht das aber nicht, weil jedes ‘&’ als Fehler ausgewertet wird. Abhilfe schafft, den konvertierten Text in CDATA einzuschließen:
echo “”;
jawohl, das habe ich gesucht..
nun kann ich Googlenews als rss in eine Kundenseite verbauen.
Trotz der Angabe &ie=iso-8859-1 lieferte google UTF-8
http://news.google.de/news?hl=de&um=1&tab=wn&q=test&ie=iso-8859-1&output=rss
vielen Dank