Java 在使用JAXB解组期间重写声明的编码

Java 在使用JAXB解组期间重写声明的编码,java,encoding,jaxb,unmarshalling,Java,Encoding,Jaxb,Unmarshalling,我有一个包含编码集的XML文件:,但实际上该文件是用UTF-8编码的。在用JAXB解组XML文件时,有没有方法覆盖XML文件中声明的编码 您可以从java.io.Reader中解组内容,以提供实际编码: Unmarshaller unmarshaller = jc.createUnmarshaller(); InputStream inputStream = new FileInputStream("input.xml"); Reader reader = new InputStreamRead

我有一个包含编码集的XML文件:
,但实际上该文件是用UTF-8编码的。在用JAXB解组XML文件时,有没有方法覆盖XML文件中声明的编码

您可以从
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();
}
了解更多信息


我知道这有点晚了,但我认为这在技术上是不合法的。这绝对不是个好主意。