Zum Inhalt springen

encoding(utf-8) Probleme mit jdom


Empfohlene Beiträge

Geschrieben

Ich möchte gern Daten in ein XML File schreiben welches als UTF-8 codiert ist. Da habe ich meine Probleme sobald ich Umlaute versuche in die XML Datei zu schreiben werden sie zwar geschrieben aber eben nicht als Umlaut sondern als Kästchen oder sonstige Zeichen. Ich habe hier mal einen Beispielcode wo es bei mir zu Problemen kommt ich verwende Windows XP als Betriebssystem.

 import java.io.FileWriter;

import java.io.IOException;


import org.jdom.Document;

import org.jdom.Element;

import org.jdom.JDOMException;

import org.jdom.input.SAXBuilder;

import org.jdom.output.Format;

import org.jdom.output.XMLOutputter;



/**

 * XML Test

 *

 */

public class XMLTest {

    private static Document doc;


    /**

     * @param args

     */

    public static void main(String[] args) {

        SAXBuilder builder = new SAXBuilder();

        try {

            doc = builder.build("./test.xml");


            Element root = doc.getRootElement();

            Element eintrag = new Element("zeile");

            eintrag.addContent("Test Sonderzeichen äüöß ");

            root.addContent(eintrag);

            Format format = Format.getPrettyFormat();

            // format.setEncoding("iso-8859-1");

            format.setEncoding("utf-8");

            XMLOutputter out = new XMLOutputter(format);

            out.output(doc, new FileWriter("./test.xml"));


        } catch (JDOMException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

} 
Hier noch das XML File was bei mir ensteht:
<?xml version="1.0" encoding="utf-8"?>

<data>

  <zeile>Test Sonderzeichen ����</zeile>

</data> 

Gibt es eine Möglichkeit den String mit seinen Umlauten in die XML Datei zu bekommen?

Wenn ich das encoding auf iso-8859-1 umstelle dann sind die Sonderzeichen sauber ich brauche aber die utf-8 codierung.

Geschrieben

UTF-8 enthält sehr wohl Umlaute. UTF-8 enthält knapp 1.000.000 Zeichen, das reicht aus um den Zeichensatz der meisten Sprachen dieser Welt komplett abzubilden.

Ich würde vermuten es ist ein darstellungsproblem und der Editor mit dem du die XML anschaust kann kein UTF-8

Geschrieben

Danke erstmal für die Antworten. Ich kann mir auch nicht vorstellen wieso UTF-8 keine Umlaute darstellen sollte.

Ich habe gestern mal noch ein wenig getestet habe den gleichen Code wie oben auf einem OpenSuse 10 System laufen lassen da war die XML Datei so wie ich es wollte. Auch nachher als ich mir die Dateien in Windows wieder angeschaut habe war alles noch OK. Ich verwende eclipse sowohl in Windows als auch im Linux. Bei beiden ist standardmäßig UTF-8 als Zeichencodierung angegeben.

Nach noch etwas mehr suchen habe ich dann noch den FileWriter durch einen BufferedWriter ersetzt. So das der Code jetzt so aussieht:

 …

out.output(doc, new BufferedWriter(new OutputStreamWriter(new FileOutputStream("./test.xml"), "UTF8")));

…

Das erzeugt mir auch unter Windows dann eine XML Datei die alle Umlaute sauber enthält. Diese Datei habe ich dann aber jemanden geschickt der ein BSD System laufen hat bei dem waren die Umlaute dann wieder nicht zu erkennen. Obwohl die Datei als Fileinfo UTF-8 als Encoding angegeben hat.

Ist der oben gepostete Weg ein richtiger Ansatz eine XML Datei in UTF-8 zu codieren oder gibt es da noch andere/ bessere Weg?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...