XML mit Umlauten korrekt einlesen?

Hallo,

Beim Einlesen eines XML-Dokuments gibt es bei Umlauten Schwierigkeiten:
org.jdom.JDOMException: Error in building from stream: Invalid byte 2 of 3-byte UTF-8 sequence.

Das XML liegt als CLOB in einer Oracle DB.
Ich verwende folgenden Java-Code:

DOMBuilder docBuilder = new DOMBuilder();
InputStream in = new StringInputStream(writer.toString());
Document doc = docBuilder.build(in);

Meine XML-Datei sieht folgendermaßen aus (beim Ä knallts dann):

<?xml version="1.0" encoding="UTF-8"?>_Hier steht mein Text mit ÄÖÜ._

Wie muss ich meinen Code anpassen, damit die Umlaute korrekt gelesen werden?

Danke,
Jan

Beim Einlesen eines XML-Dokuments gibt es bei Umlauten
Schwierigkeiten:
org.jdom.JDOMException: Error in building from stream:
Invalid byte 2 of 3-byte UTF-8 sequence.

[…]
Meine XML-Datei sieht folgendermaßen aus (beim Ä knallts
dann):

<?xml version="1.0" encoding="UTF-8"?>

Hier steht mein Text mit
ÄÖÜ.

Bist du ganz sicher, dass die Datei auch als UTF-8 vorliegt und nicht als ISO-8859-1 oder sonst irgendwas?

Hallo,

Ebenfalls Hallo!

Wie muss ich meinen Code anpassen, damit die Umlaute korrekt
gelesen werden?

Ich hatte mal genauso ein Problem. Mir half dann die Umstellung des Codings auf „ISO-8859-1“.

Viel Erfolg,

Chris

Hi,

Wie mache ich die Umstellung denn?

Grüße,
Jan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Nicos,

Bist du ganz sicher, dass die Datei auch als UTF-8 vorliegt
und nicht als ISO-8859-1 oder sonst irgendwas?

Nein, bin ich nicht.
Wenn ich den Text auf die Konsole ausgebe, sieht er so aus:
Dies ist mein Text ─Í▄
Ich weiss aber nicht, was das (für die Codierung) bedeutet?
Hast du eine Idee?
Oder kannst mir sagen, wie ich das richtig einlese?

Danke und Grüße,
Jan

Beim Einlesen eines XML-Dokuments gibt es bei Umlauten
Schwierigkeiten:
org.jdom.JDOMException: Error in building from stream:
Invalid byte 2 of 3-byte UTF-8 sequence.

[…]
Meine XML-Datei sieht folgendermaßen aus (beim Ä knallts
dann):

<?xml version="1.0" encoding="UTF-8"?>

Hier steht mein Text mit
ÄÖÜ.

Wie mache ich die Umstellung denn?

Die Codierung eines XML-Dokuments wird in der Präambel angegeben, also zB:

<?xml version="1.0" encoding="UTF-8"?><?xml version="1.0" encoding="ISO-8859-15"?>

etc.

Wenn die falsch ist, verhaut der Parser dann so ziemlich alles, was außerhalb des 7bit ASCII-Zeichensatzes liegt. Im Fall von UTF-8 ist das besonders übel, weil da Zeichen mit einem bis vier Bytes codiert sind und daher nicht unbedingt alle Zeichenketten wirklich gültig sind.

Jeder vernünftige Editor sollte den verwendeten Zeichensatz als Option anbieten.