Hallo, Jonas
Ich habe die Umlaute nach html kodiert (ü etc.). Wenn ich den Feed nun durch einen Validator schicke, gibt er mir an der Stelle, wo das ü steht, eine Fehlermeldung aus.
Warum es nicht geht, hat Ashura schon versteckt gesagt: in x-beliebigen XML-Dateien gibt es nur ein paar vordefinierte benannte Entities. Die bei Dir vorhandenen Beispiele z.B. für Umlautkodierung sind zwar in HTML vordefiniert, aber eben nicht für jedes Feld-, Wald- und Wiesen-XML. Im Prinzip müsste man diese dann in der DTD selbst definieren, ich halte es aber nicht unbedingt für wahrscheinlich, dass jeder RSS verarbeitendes Ding damit zurecht kommt.
Im Prinzip brauchst Du Deine auch Umlaute nicht in Entities zu kodieren. Du hast für Deinen RSS-Feed die Kodierung ISO 8859-1 angegeben, darin sind alle gebräuchlichen europäischen Schriftzeichen enthalten. Du kannst also Deine Umlaute einfach als normalen Text reinpacken. Ginge auch in der Kodierung UTF-8, wie von Ashura vorgeschlagen.
Wenn das aber für Dich irgendwie ein Problem sein sollte, weil Du den Text aus einer Quelle bekommst und nicht verändern kannst, dann gibt es eine andere Lösung - Du musst den Text im description-Element maskieren. Das wird beispielsweise gemacht, um HTML-Quellcode im RSS-Feed unterzubringen zu können, klickbare Links, Bilder und so. Und Deine ü sind aus dieser Sicht nun mal XML. Für RSS 2.0 gibt es da verschiedene Möglichkeiten. Für die einfachste halte ich die, den HTML-Inhalt des Description-Elementes zusätzlich noch einen CDATA-Abschnitt zu packen. Das heisst dann für den XML-Parser, dass er den Inhalt des Abschnittes nicht als XML interpretieren sondern so weiterreichen soll. Das heisst, er stört sich nicht mehr an den ihm nicht bekannten Entities. Sieht dann so aus:
<description>
<![CDATA[
Mit etwas Verspätung erreichte das Spiel doch noch unser Testlabor. Ob die Persiflage an die Science-Fiction Filme der 50-Jahre auch spielerisch überzeugen kann?
]]>
</description>
Dieselbe Methode nutzen wir hier auch für die RSS-Feeds des Forums.
Tim