# Encoding Problem



## Swoop (27. Mai 2010)

Hallo,

Ich hab ein Programm dass in eine XML-Datei schreibt und ließt mit Stax....

Jetzt hab ich nur das Problem, dass er die Sonderzeichen einfach nicht will. Das heißt ÄÖÜß usw also vorwiegend deutsche Zeichen nicht annimmt. Ich kann mir schon denken woher der Wind weht und brauche ein deutschen Zeichensatz.

Jetzt nur welchen soll ich am besten Verwenden und wie verwendet man diesen?


```
Auszug aus Programm:

public static void writeXML()
	{
		try {
			XMLOutputFactory factory = XMLOutputFactory.newInstance();
			XMLStreamWriter writer = factory.createXMLStreamWriter(new FileOutputStream(
					PATH));
			writer.writeStartDocument("Hier Encoding ?!","1.0");
			writer.writeStartElement("templates");
Auszug Ende
```

Danke schonma 

Gruß Swoop


----------



## maki (27. Mai 2010)

Warum nicht UTF-8 nehmen?


----------



## SlaterB (27. Mai 2010)

OutoutStreamWriter könnte die richtige Stelle sein
http://www.java-forum.org/xml-co/67298-umlaute-xstream.html

was man im XML als Text angeben muss und wie das an den XMLStreamWriter zu übergeben ist, kann ich nicht beurteilen


----------



## Swoop (27. Mai 2010)

ja das hab ich mir auch schon überlegt  

und auch versucht aber wenn ich an die stelle


```
writer.writeStartDocument("UTF-8","1.0");
```

Kommt diese Exception beim Speichern:
javax.xml.stream.XMLStreamException: Underlying stream encoding 'Cp1252' and input paramter for writeStartDocument() method 'UTF-8' do not match.


----------



## SlaterB (27. Mai 2010)

da kommt mein vorheriges Posting ins Spiel 
letztes Posting im gelinkten Topic


----------



## Swoop (27. Mai 2010)

habs gesehen^^ aber davor schon gepostet ! danke ...


----------



## Swoop (27. Mai 2010)

also irgendwie steig ich da immernoch nicht durch ...

ich hab mir das angeschaut aber dort in dem beispiel wird ja ein andere Stream verwendet und irgendwie komm ich nciht drauf das in mein Projekt mit einzubinden ?!


Edit:

Fehler gefunden:


```
XMLStreamWriter writer = factory.createXMLStreamWriter(new FileOutputStream(PATH), "UTF-8");
```

Das war der Fehler =)


----------



## SlaterB (27. Mai 2010)

createXMLStreamWriter(OutputStreamWriter(FileOutputStream))

edit: ok, dann kann man doch eben auch das Encoding angeben, gewiss wird intern ein OutputStreamWriter zwischengelegt


----------

