2011-09-07 5 views
8

Ho un file XML con la sua codifica impostata all'interno di esso: <?xml version="1.0" encoding="ISO-8859-15"?> ma il file in realtà è codificato in UTF-8. Esiste un modo per sovrascrivere la codifica dichiarata nel file XML quando non si esegue il marshalling con JAXB?Override dichiarato codifica durante unmarshalling con JAXB

+0

So che questo è una specie di in ritardo, ma non penso che sia tecnicamente legale. Ed è SICURAMENTE non una buona idea. – fool4jesus

risposta

18

È possibile unmarshalling il contenuto da un java.io.Reader al fine di fornire la codifica attuale:

Unmarshaller unmarshaller = jc.createUnmarshaller(); 
InputStream inputStream = new FileInputStream("input.xml"); 
Reader reader = new InputStreamReader(inputStream, "UTF-8"); 
try { 
    Address address = (Address) unmarshaller.unmarshal(reader); 
} finally { 
    reader.close(); 
} 

Per ulteriori informazioni