22.05.2014, 15:54
(21.05.2014, 05:16)lundefugl Wrote:(21.05.2014, 00:00)jschoch Wrote: Wenn darin Zeichen größer ASCII 128 sind, also zum Beispiel Buchstaben mit Akzenten drauf, dann machen die javascript Bibliotheken von Google nicht mehr mit und zeigen den Track nicht auf der Karte an. (Weil dies xml Standards verletzt.)
Wie du richtig geschrieben hast, ist KML ein XML-Format . Da es in UTF-8 codiert ist, müssen solche Sonderzeichen nicht zwingend gekapselt werden. Es müssen nur Dinge per CDATA gekapselt werden, die irgendwelche in XML reservierten Zeichen enthalten (z.B. < oder >).
Da ich mal annehme, dass Christian beim schreiben der Files auf eine XML-Bibliothek zurückgreift, dürfte er nur wenig Einfluss darauf haben, ob CDATA geschrieben wird oder nicht. Das entscheidet die Bibliothek selbst.
Korrekt. RouteConverter verwendet JAXB, was wiederum den Standard JDK-Parser für XML verwendet. Mit Kodierung habe ich da nichts zu tun, das erledigt alles der XML-Parser.
(21.05.2014, 05:16)lundefugl Wrote: Ich würde daher mal behaupten, dass die verwendete Google-Library sich nicht 100%ig an den XML-Standard hält. (oder KML sieht zwar wie XML aus - ist aber keins und Google hat das selbst anders definiert).
Das habe ich auch schon erlebt: Google Earth liest alles mögliche und nicht nur wohlgeformtes KML.
Ich kann mir noch eine weitere Fehlerursache für den Akzent vorstellen: die Kodierung der KML-Datei wird verändert. Wenn im Dateikopf UTF-8 steht, die Datei aber ISO-8859-1 oder Windows-1252 ist, bekommt die Google Maps API falsche Daten serviert. @Jürgen: kannst Du das nochmal überprüfen?
--
Christian
Christian