Hallo,
ich bin gerade leicht verwirrt, was Encodings in JDOM und JAVA angeht.
Ich muss einen String von einem Soap Webservice verarbeiten.
Der String ist ein XML-Dump aus einer Datenbank (WindowsSystem), enthält aber keine Encodinginformationen.
Ich bekomme den String von axis zurück und schreibe ihn direkt in eine Datei.
>> JDOM importiert die Datei mit Defaultencoding (UTF-8), da kein Encoding angegeben ist. und gibt mir den hier :
Zeichenumwandlungsfehler: "UTF-8 encoding of character 0x001b796e can't be converted to Unicode."
daraus kann ich doch schließen, dass der String als ISO-8859-1 ankommt ?
Das Zeichen müsste ein "ö" sein. (wo schlag ich das nach ?)
also füge ich in die Datei (bzw in den String) "<?xml version="1.0" encoding="ISO-8859-1"?>" ein.
>> JDOM importiert die Datei problemlos.
Aus diesen Daten erzeuge ich eine neue XML Datei, diesmal UTF-8 codiert.(JDOM Standard)
Schau ich mir die neue Datei im Browser an wechselt er auf UTF-8 und die Umlaute stimmen.
Somit sollte seitens JDOM soweit alles passen ?
Jetzt möchte ich nur gern die Dateien einheitlich haben, und den empfangen String auch in UTF-8 speichern.
Schaue ich die Datei im Browser an bekomme ich "?" statt "ö". Ändert sich auch nicht, wenn ich das Encoding
per Hand von UTF-8 auf ISO-8859-1 ändere.
Wo ist denn da nun der Fehler ?
thx
-- -- muckelzwerg
ich bin gerade leicht verwirrt, was Encodings in JDOM und JAVA angeht.
Ich muss einen String von einem Soap Webservice verarbeiten.
Der String ist ein XML-Dump aus einer Datenbank (WindowsSystem), enthält aber keine Encodinginformationen.
Ich bekomme den String von axis zurück und schreibe ihn direkt in eine Datei.
>> JDOM importiert die Datei mit Defaultencoding (UTF-8), da kein Encoding angegeben ist. und gibt mir den hier :
Zeichenumwandlungsfehler: "UTF-8 encoding of character 0x001b796e can't be converted to Unicode."
daraus kann ich doch schließen, dass der String als ISO-8859-1 ankommt ?
Das Zeichen müsste ein "ö" sein. (wo schlag ich das nach ?)
also füge ich in die Datei (bzw in den String) "<?xml version="1.0" encoding="ISO-8859-1"?>" ein.
>> JDOM importiert die Datei problemlos.
Aus diesen Daten erzeuge ich eine neue XML Datei, diesmal UTF-8 codiert.(JDOM Standard)
Schau ich mir die neue Datei im Browser an wechselt er auf UTF-8 und die Umlaute stimmen.
Somit sollte seitens JDOM soweit alles passen ?
Jetzt möchte ich nur gern die Dateien einheitlich haben, und den empfangen String auch in UTF-8 speichern.
Code:
String data = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + System.getProperty("line.separator") + SOAPHOLESTRING(...) ;
byte [] b = data.getBytes( "ISO-8859-1");
String data2 = new String ( b, "UTF-8" );
data2 ---> datei;
per Hand von UTF-8 auf ISO-8859-1 ändere.
Wo ist denn da nun der Fehler ?
thx
-- -- muckelzwerg