Переопределить объявленную кодировку во время демаршаллинга с JAXB - PullRequest
10 голосов
/ 07 сентября 2011

У меня есть XML-файл с установленной кодировкой: <?xml version="1.0" encoding="ISO-8859-15"?>, но на самом деле файл кодируется в UTF-8. Есть ли способ переопределить кодировку, объявленную в XML-файле, при демаршаллинге с помощью JAXB?

1 Ответ

19 голосов
/ 07 сентября 2011

Вы можете разархивировать содержимое из java.io.Reader, чтобы указать фактическую кодировку:

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();
}

Для получения дополнительной информации

...