# UTF-8 Castor Unmarshal Fehler?



## DaRolla (22. Nov 2006)

Hallo,

ich habe ein Problem mit Castor's Unmarshal.

Also ich hab eine XML Datei in UTF-8, in der ich Strings wie "unglücklich", "fröhlich" und "großes Grinsen" benutze.

Dann hab ich ein Schema in UTF-8 dazu geschrieben, und per Castor mir die JAVA Klassen generieren lassen.

Per Unmarshal lade ich dann die XML Datei ein.

Da JAVA intern mit UTF-16 arbeitet, sollte alles glatt gehen.

Tut es aber leider nicht.

Denn ich erhalte String wie "unglÃ¼cklich", "frÃ¶hlich" und "groÃŸes Grinsen".

Für mich sieht das aus als ob Castor die XML Datei in  ISO-8859-1 parst, was ja falsch ist, da die XML als auch die XSD Datei in UTF-8 editiert wurde (Eclipse) und auch UTF-8 im Header hat.

Was ist zu tun?

Wie kann ich Castor so konfigurieren dass er wirklich in UTF-8 parst?

Beste Grüße
Marco

PS: Hier die XML Datei

```
<?xml version="1.0" encoding="UTF-8"?>
<xmlSmilies xmlns="http://www.example.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.de ../xsd/smilies.xsd">

  <webroot>http://www.example.de/Smilies</webroot>

  <storage>C:\development\workspace\Smilies</storage>
 
  <smily code   = " :("
         baloon = "unglücklich" 
         gif    = "frown.gif" 
  />

  <smily code   = " =)"
         baloon = "fröhlich" 
         gif    = "happy.gif" 
  />

  <smily code   = " :D"
         baloon = "großes Grinsen" 
         gif    = "biggrin.gif" 
  />

</xmlSmilies>
```

PSS: Hier die XSD Datei

```
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.de" xmlns="http://www.example.de" elementFormDefault="qualified">

    <xsd:element name="smily">
        <xsd:complexType>
            <xsd:attribute name="code"   type="xsd:string" use="required"/>
            <xsd:attribute name="baloon" type="xsd:string" use="required"/>
            <xsd:attribute name="gif"    type="xsd:string" use="required"/>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="xmlSmilies">
        <xsd:complexType>
            <xsd:sequence minOccurs="0" maxOccurs="1">        
                <xsd:element name="webroot" type="xsd:anyURI" minOccurs="1" maxOccurs="1"/>
                <xsd:element name="storage" type="xsd:string" minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="smily"                      minOccurs="0" maxOccurs="unbounded"/>           
            </xsd:sequence>           
        </xsd:complexType>                
    </xsd:element>
        
</xsd:schema>
```


----------



## DaRolla (24. Nov 2006)

habs bei castor mal als bug gemeldet: http://jira.codehaus.org/browse/CASTOR-1705

gruß
marco


----------



## DaRolla (27. Nov 2006)

hallo,

hat n bisschen gedauert, aber nun weiss ich wie mans macht, ist nämlich gar kein bug.

XmlSmilies xml = XmlSmilies.unmarshal( new InputStreamReader( configURL.openStream(), "UTF-8" ) );

gruß
marco


----------

