# XML umlaute in utf8 konvertieren



## padkey (5. Jul 2011)

Hallo zusammen,

ich habe ein Problem... :-(

ich erhalte xml-Dateien, welche ich per Java-Agenten in Lotus Notes Dokumente transferiere.

Inhalt in der XML: ... *Ośrodek* ... --> wird zu: *OÅ›rodek *in Lotus Notes.
Normalerweise bräuchte ich Ośrodek im UTF8-Format, ist es aber leider nicht.


```
orderDoc = builder.parse(emo.getInputStream());
```

1. welches coding habe ich (windows system)
2. wie mache ich es in utf. ś ist natürlich nur ein beispiel. ist für alle umlaute usw.


----------



## partsch (5. Jul 2011)

Ich hatte ein ähnliches Problem vor ein par Wochen in einer .NET Anwendungen, dass ich das Encoding nicht wusste und es auch keins von den Standard-Encodings war die man so auf die schnelle fand 

Aber zu der Frage wie du es in UTF8 bekommst:
Die Klasse String hat den Konstruktor 
	
	
	
	





```
new String(byte[],String encoding)
```
Es müsste doch gehen 
	
	
	
	





```
String stringInUTF8 = new String(string.getBytes("some_encoding"), "UTF8");
```

mfg Partsch

PS: ist es vielleicht cp1252?


----------



## padkey (6. Jul 2011)

Ich denke nicht, dass es CP1252 sein kann, weil wenn ich versuche:

```
System.out.println("Ośrodek");
```
bekomme ich von eclipse die Fehlermeldung, dass er Ośrodek nicht als CP152 speichern kann ...

Habe es leider immer nicht hinbekommen... hat jemand eine idee?

*Kröner* wird zu *KrÃ¶ner*


----------



## padkey (6. Jul 2011)

so ich habe nun auch mal die String Lösung versucht:

```
System.out.println("Textnode: " + textNode.getData());
System.out.println("UTF-8 " + new String(textNode.getData().getBytes("UTF-8")) + " ISO-8859-1: " + new String(textNode.getData().getBytes("ISO-8859-1")));
```

macht folgende Ausgabe:


```
Textnode: KrÃ¶ner
UTF-8 KrÃƒÂ¶ner 
ISO-8859-1: KrÃ¶ner
```

*Daher denke ich, dass er schon die Sachen falsch einliest?!*

```
EmbeddedObject emo = currDoc.getAttachment(file);

tw = ((DocumentTraversal)orderDoc).createTreeWalker((Node) builder.parse(emo.getInputSource()), NodeFilter.SHOW_ELEMENT, null, false);
```

Hat jemand eine idee, wie ich das angehen kann?


----------



## partsch (6. Jul 2011)

padkey hat gesagt.:


> so ich habe nun auch mal die String Lösung versucht:
> 
> ```
> System.out.println("Textnode: " + textNode.getData());
> ...


So habe ich das auch nicht gemeint ... bei 
	
	
	
	





```
textNode.getData().getBytes("some_encoding")
```
 soll nicht UTF8 übergeben werden sondern das Encoding was der ausgelesene String eigentlich hat, erst im Konstruktor vom String übergibst du als zweiten Parameter das Encoding zu welchem der String konvertiert werden soll, bei dir eben UTF8.


----------

