我们正在使用JAXB解析XML文档并得到以下错误:JAXB错误的说明:1字节UTF-8序列的字节1无效
[org.xml.sax.SAXParseException: Invalid byte 1 of 1-byte UTF-8 sequence.]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:315)
这究竟是什么意思,我们如何解决这个问题?
我们正在执行以下代码:
jaxbContext = JAXBContext.newInstance(Results.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
unmarshaller.setSchema(getSchema());
results = (Results) unmarshaller.unmarshal(new FileInputStream(inputFile));
更新
问题似乎是由于XML文件中的这个“有趣”字符:¿
为什么这会导致这样的问题吗?
更新2
文件中有两个奇怪的字符。它们位于文件的中间。请注意,该文件是基于数据库中的数据创建的,并且这些奇怪的字符以某种方式进入数据库。
更新3
以下是完整的XML片段:
<Description><![CDATA[Mt. Belvieu ¿ Texas]]></Description>
更新4
请注意,没有<?xml ...?>
标头。
特殊字符的HEX是BF
这意味着输入是腐败....没有更多的信息,我可以说没什么。 – skaffman 2010-06-14 18:54:43
增加了一些更多信息。这有任何意义吗??谢谢你的帮助! – 2010-06-14 19:10:19
您可以发布包含违规文本的XML文件部分吗? – ChrisF 2010-06-14 19:13:46