在JAXB解组期间覆盖声明的编码



我有一个XML文件,其中包含编码集:<?xml version="1.0" encoding="ISO-8859-15"?>,但实际上文件是用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();
}

查看更多信息

  • http://blog.bdoughan.com/2011/08/jaxb-and-java-io-files-streams-readers.html

最新更新