Override declared encoding during unmarshalling with JAXB
问题 I have an XML file with its encoding set within it: <?xml version="1.0" encoding="ISO-8859-15"?> but really file is encoded in UTF-8. Is there a way to override encoding declared in XML file when unmarshalling it with JAXB? 回答1: You can unmarshal the content from a java.io.Reader in order to supply the actual encoding: Unmarshaller unmarshaller = jc.createUnmarshaller(); InputStream inputStream = new FileInputStream("input.xml"); Reader reader = new InputStreamReader(inputStream, "UTF-8");