java – JAXB错误的说明:1字节UTF-8序列的字节1无效
发布时间:2020-05-28 10:25:30 所属栏目:Java 来源:互联网
导读:我们正在使用JAXB解析XML文档并收到此错误:[org.xml.sax.SAXParseException: Invalid byte 1 of 1-byte UTF-8 sequence.] at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(Abstra
|
我们正在使用JAXB解析XML文档并收到此错误:
这究竟是什么意思,我们如何解决这个问题? 我们正在执行以下代码:
更新 问题似乎是由于XML文件中的这个“有趣”字符: 为什么会导致这样的问题? 更新2 文件中有两个奇怪的字符.它们位于文件的中间.请注意,该文件是基于数据库中的数据创建的,并且这些奇怪的字符以某种方式进入数据库. 更新3 这是完整的XML代码段:
更新4 请注意,没有<?xml ...?>头. 特殊字符的HEX是BF 最佳答案 所以,问题在于JAXB在没有<?xml ...?>的情况下处理XML文件.标题为UTF-8,当您的文件使用其他一些编码时(可能是ISO-8859-1或Windows-1252,如果0xBF字符实际上意味着).如果您可以更改文件的制作者,可以添加<?xml ...?>标头与实际编码规范,或只是使用UTF-8写入文件. 如果您无法更改生成器,则必须使用具有显式编码规范的InputStreamReader,因为(遗憾的是)JAXB不允许更改其默认编码:
但是,这个解决方案很脆弱 – 它输入文件失败了<?xml ...?>标头具有不同的编码规范. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
