jaxb - 在 JAXB 解码器中处理 BOM

标签 jaxb byte-order-mark

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

最佳答案

如果您引用的是带有 BOM 的 UTF-8 文件,那么您必须自己跳过它。创建一个 InputStream 类非常简单,该类检查 BOM 的前两个字节并跳过它们,否则包装另一个 InputStream。这已记录在this SO answer中用于此目的的开源代码可用 from GitHub .

如果您指的是 UTF-16 等其他编码,JRE 应从 UTF-16 流中读取 BOM 并自行丢弃。

关于jaxb - 在 JAXB 解码器中处理 BOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28152512/

相关文章:

pdf - PDF 文档中是否允许使用字节顺序标记?

c# - 克隆编码但关闭 BOM

qt - 在 Qt 中 QTextCodec::codecForName ("UTF-16") 和 codecForName ("UTF-32") 如何决定使用的字节顺序?

unicode - UTF-8 和带 BOM 的 UTF-8 有什么区别?

c - 是否可以防止添加 BOM 以输出 UTF-8 文件? ( Visual Studio 2005)

java - 从 xml 中删除不需要的空格

java - JAXB 是否总是忽略@XmlType/propOrder 中未指定的 'extra' 元素?

java - XML 和 MQ 最佳解决方案

java - 是否可以在运行时写入存储在 JAR 中的设置 XML?

java - 排除SBT项目中生成的源码包目录