Charset bei Datenübertragung?
LeKuchen
- https
Hallo zusammen,
ich versende per xmlhttp
xmlHttpReq.setRequestHeader "Content-type", "text/xml; charset=utf-8"
xmlHttpReq.send xmlDoc.xml 'string to send
ein xml Dokument von einem Client mit Sonderzeichen in den Attributen, z.B.:
<V3107 name="Strasse" value="dörfstraße 1">
Beim Server kommt dann aber folgendes an:
<V3107 name="Strasse" value="dörfstaÃe 1">
Was muss ich für ein Charset angeben, damit es richtig ankommt bzw. womit muss ich es encoden/decoden? Komme da irgendwie nicht weiter...
Gruss & Dank,
LeKuchen
Moin!
ein xml Dokument von einem Client mit Sonderzeichen in den Attributen, z.B.:
<V3107 name="Strasse" value="dörfstraße 1">
Beim Server kommt dann aber folgendes an:
<V3107 name="Strasse" value="dörfstaÃe 1">
Das klingt korrekt. UTF-8-Codierung ist immer am großen "A-Tilde" zu erkennen, dem ein weiteres Zeichen folgt, wenn deutsche Umlaute codiert sind.
Was muss ich für ein Charset angeben, damit es richtig ankommt bzw. womit muss ich es encoden/decoden? Komme da irgendwie nicht weiter...
UTF-8 ist eine sehr brauchbare Codierung. Damit hast du keine Probleme mit irgendwelchen abstrusen und auch alltäglichen Sonderzeichen, wie beispielsweise dem Euro-Zeichen (das ist mit UTF-8 nämlich problemlos darstellbar).
Sofern dir mehr daran liegt, in deinem Editor lesbare Umlaute zu sehen, empfiehlt sich die Verwendung von ISO-8859-1 bzw. (wenn das Eurozeichen gewünscht ist) ISO-8859-15 (bei letzterem hat _mein_ Editor allerdings versagt nur nur das allgemeine Währungszeichen "¤" angezeigt, was in ISO-8859-1 an der Stelle des Euros steht).
Ansonsten lies gerne mal meine Ausführungen zu Zeichencodierungen allgemein in [pref:t=84613&m=496327].
- Sven Rautenberg
Hallo Sven,
Sofern dir mehr daran liegt, in deinem Editor lesbare Umlaute zu sehen, empfiehlt sich die Verwendung von ISO-8859-1 bzw. (wenn das Eurozeichen gewünscht ist) ISO-8859-15 (bei letzterem hat _mein_ Editor allerdings versagt nur nur das allgemeine Währungszeichen "¤" angezeigt, was in ISO-8859-1 an der Stelle des Euros steht).
Ansonsten lies gerne mal meine Ausführungen zu Zeichencodierungen allgemein in [pref:t=84613&m=496327].
Ja, ISO-8859-1 ist wohl mein Kandidat, setze jetzt schön im xml-Dokument die Deklaration <?xml version="1.0" encoding="ISO-8859-1"?>, dann weden die Sonderzeichen richtig angezeigt. Auf der Clientseite somit alles OK....
...aber wenn das XML Dokument dann (gesendet per vb/xmlhttp) beim Server ankommt, ist die Deklaration nur noch <?xml version="1.0"?>! Das encoding wird nicht mitgesendet! Schweinerei! :oD Irgendeine Idee?
LeKuchen
Moin!
...aber wenn das XML Dokument dann (gesendet per vb/xmlhttp) beim Server ankommt, ist die Deklaration nur noch <?xml version="1.0"?>! Das encoding wird nicht mitgesendet! Schweinerei! :oD Irgendeine Idee?
Offenbar verarbeitet dein "vb/xmlhttp" die Daten nochmal intern und überträgt sie nicht 1:1. Da ich mich mit VB und dessen xmlhttp absolut nicht auskenne, fällt mir logischerweise nichts schlaues dazu ein, außer: Sende die Daten direkt, ohne xmlhttp. :)
- Sven Rautenberg