【问题标题】:Efficiently removing UTF Byte order Mark [duplicate]有效去除 UTF 字节顺序标记 [重复]
【发布时间】:2013-08-10 07:14:36
【问题描述】:

我正在寻找以下问题的有效解决方案:

org.xml.sax.SAXParseException: Content is not allowed in prolog

问题是在解组文件(使用 jaxb)之前跳过(或删除)前 3 个 bom 字节(如果存在)。

我可以通过检查前三个字节然后将之后的所有内容写入新文件并使用新文件来使其工作,但这似乎非常低效。

如果 BOM 存在,我尝试将文件指针移动超过 3 个字节(并验证了 c 的指针位置),但是当我将输入流传递给 jaxb 时,它仍然抛出相同的异常;我的直觉是文件指针正在被重置。

有人对此有任何想法吗?

谢谢

【问题讨论】:

标签: java xml utf-8 jaxb byte-order-mark


【解决方案1】:

使用 InputStream 装饰器从 Apache Commons IO 中剥离 BOM,例如 BOMInputStream

【讨论】:

    猜你喜欢
    • 2010-11-07
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 2016-02-04
    • 2011-04-21
    相关资源
    最近更新 更多