在JAXB解组器中处理BOM

在JAXB解组器中处理BOM,jaxb,byte-order-mark,Jaxb,Byte Order Mark,JAXB如何处理以BOM开头的字符串(XML)?解组时是否有要设置的属性或某些配置来跳过BOM表?除了Oracle的实现之外,还有其他JAXB实现可以做到这一点吗?如果您引用的是带有BOM表的UTF-8文件,那么您必须自己跳过它。创建一个InputStream类非常简单,该类检查BOM的前两个字节并跳过它们,或者包装另一个InputStream。这已在中进行了记录,并提供了用于此目的的开放源代码 如果您指的是UTF-16之类的其他编码,JRE应该从UTF-16流中读取BOM并丢弃它本身。我有一个

JAXB如何处理以BOM开头的字符串(XML)?解组时是否有要设置的属性或某些配置来跳过BOM表?除了Oracle的实现之外,还有其他JAXB实现可以做到这一点吗?

如果您引用的是带有BOM表的UTF-8文件,那么您必须自己跳过它。创建一个InputStream类非常简单,该类检查BOM的前两个字节并跳过它们,或者包装另一个InputStream。这已在中进行了记录,并提供了用于此目的的开放源代码


如果您指的是UTF-16之类的其他编码,JRE应该从UTF-16流中读取BOM并丢弃它本身。

我有一个xml内容的字符串,类似于“…”,我创建了一个StringReader,将内容读入解组器,如下所示:unmarshaller.unmarshal(新StringReader(xml));但是字符串是以BOM开头的,自从解组过程崩溃后,问题就出现了。我认为JAXB有一些属性可以自行设置和处理BOM字符,而不需要我做任何更改。不,遗憾的是,您仍然必须自己做。我也可以提醒你注意这个项目,特别是课程和/或课程吗?是的,我必须看一下这些课程,非常感谢你的帮助;)。