Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: alkuhn am 28.08.05 - 20:03:15
-
Hallo,
ich muss einen RSS Feed mit xml realisieren. Soweit tut alles (der Aufbau stimmt und es werden die richtigen Daten angezeigt). Wenn ich aber den RSS Feed bei feedvalidator.org teste, bekomme ich immer den Hinweis
Your feed appears to be encoded as "ISO-8859-1", but your server is reporting "US-ASCII"
Ich habe keine Ahnung, was ich noch umstellen muss / kann. Hat mir jemand einen Hinweis?
Bin für jeden Tipp dankbar.
-
erstellst du das xml selber?
Du kannst im xml tag festlegen, welches encoding benutzt werden soll.
<?xml version="1.0" encoding="ISO-8859-1"?>
Soweit du das XML mit irgendwelchen APIs erzeugst, gibt es da vermutlich eine Methode setEncoding().
hoffe es hilft.
Hier ist so etwas wie eine Erklärung:
http://www.w3schools.com/xml/xml_encoding.asp
-
Danke für die Antwort!
Ich erstelle das XML selber und habe auch das encoding angegeben. Das Problem besteht darin, dass der Server wohl einen anderen Zeichensatz angibt.
Your feed appears to be encoded as "ISO-8859-1", but your server is reporting "US-ASCII"
Hast Du noch eine Idee für mich?
-
Hilft das, was die unter Solution schreiben nicht weiter ?
http://feedvalidator.org/docs/warning/EncodingMismatch.html
-
Entschuldige bitte, im Augenblick stehe ich auf der Leitung. Ist das nicht mein Problem:
ensure that the server makes no claims about the encoding
-
Ok. Genau umgekehrt.
Wie das genau mit diesen Character Encodings zu regeln ist, halte ich für ernsthaft nicht einfach.
Wie erstellst du das xml File? Agent, Maske, Page mit computed Text?
US-ASCI verwundert mich. UTF-8 hätte ich erwartet
Oder schau dir das mal an.
http://www.codestore.net/store.nsf/unid/HUMR-6AASZV?OpenDocument
Bzw. kannst du den http content type header setzen?
Vermutlich kannst du mit 6 etwas mit @SetHttpHeader machen.
Kommt aber drauf an, wie du den rss-response generierst.
So in der Art: @SetHttpHeader("Content-Type"; "text/html; charset=ISO-8859-4");
Dies kann evtl. auch helfen:
http://www.notestips.com/80256B3A007F2692/1/NAMO599UGG
Gibt aber noch weitere Möglichkeiten.
-
Ich habe eine Ansicht, wo ich die Inhalte aufbereitet. Die Ansicht ist in einer Seite eingebettet. In der Seite steht vor der Ansicht der Aufbau vom RSS Feed.
Habe es mal mit @SetHTTPHeader aber das hat leider nichts gebracht.
Auf jeden Fall vielen Dank für Deine Bemühungen!!!
-
Der erste Link von Axel zu codestore.net zeigt einen Artikel, in dem ganz unten im Addendum ein Problem beschrieben wird, dass deinem entsprechen könnte. Hast du das schon gesehen?
*edit*
oh, lese gerade, dass du eine Seite hast und keine Maske. Kann natürlcih sein, dass das dann doch nicht dein Problem ist.
-
Du kannst vielleicht die Ansicht in einer Maske anzeigen (mit diesem alten $$ViewTemplateFor Feld).
In der Maske kannst du dann auf dem 2. Reiter der Eigenschaftenbox den Inhaltstyp angeben.
rss....
Oder mach einfachl, was der Onkel hier sagt:
http://www.notestips.com/80256B3A007F2692/1/NAMO5MQVKJ#3.1
Das sieht so aus, als würde es sehr gut passen.
Du kannst auf Seiten Eigenschaftsbox im 2. Reiter den Typ des Dokuments angeben. Also auch rss.
-
Oder mach einfachl, was der Onkel hier sagt:
Schlag mich, habe alles gemacht, was der Onkel gesagt hat. Nach weiteren ca. 1000 grauen Haaren und Änderungen habe ich gerade in die Seitenansicht den Inhaltstyp von text/xml auf application/xml geändert - und schon geht es :-[
-
Hat der Onkel das wirklich nicht gesagt ::)
Ich find das auch nicht gerade offensichtlich. Vor allem wenn man noch nicht vor ähnlichen http-Problemen gestanden hat.
Das setzen des Content Types ist auch in Domino als "afterthought" in Domino 6 eingefügt worden.
In Servlets hast du z.B. HttpServletResponse.setContentType("String contentType);
In PHP z.B. gibt es sicher auch eine ähnliche einfache Funktion.
-
auch der Onkel von feedvalidator hat das in seiner solution heute morgen schon gesagt
"Serving the feed as application/xml means that the encoding will be taken from the file's declaration."
-
Der Onkel hat es wirklich gesagt, aber der Neffe hat es überlesen :P
-
auch der Onkel von feedvalidator hat das in seiner solution heute morgen schon gesagt
"Serving the feed as application/xml means that the encoding will be taken from the file's declaration."
Hättest du gesetzt, wie du den entsprechenden HTTP-Header setzt in Domino 6?
In dem 2. Reiter der Eigenschaftenbox der Page?
BTW: HTTP Header Felder sind etwas anderes als html-head Felder (das was innerhalb des html-head tags steht)
Ich hab das heute hier gelernt. Thx.
-
Äh, was meinst Du?
-
Mit der Eigenschaftsbox setzt du das http-Header Feld Content oder Content-Type.
Diese HTTP-Header siehst du nirgendwo im html source code sondern nur mit einem http-sniffer oder einem http-proxy/interceptor.
In Domino6 kann man wenigstens das HTTP-Content-Type Feld über diese Eigenschaftenboxen setzen. Aber Datenbanken24 hatte da auch schon interessante Dinge berichtet, wenn er andere http-header setzen mußte. Das war dann alles andere als so einfach wie das hier.
Ich weiss aber jetzt wies geht und deshalb habe ich etwas durch diesen Thread gelernt.
-
Super - und nochmals vielen Dank für Eure Hilfe!!!!!