在使用JAXB解组时重写声明的编码

yoz*_*ozh 10 java encoding jaxb unmarshalling

我有一个XML文件及其编码设置:<?xml version="1.0" encoding="ISO-8859-15"?>但真正的文件是用UTF-8编码的.有没有办法在使用JAXB解组时覆盖XML文件中声明的编码?

bdo*_*han 19

您可以从a解组内容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();
}
Run Code Online (Sandbox Code Playgroud)

欲获得更多信息