1
A
回答
1
看起来你可能会给utf-16输入一个不期望utf-16的saxparser。尝试将数据转换为utf-8,这可能会有所帮助。
2
在十六进制编辑器中检查文件。
如果最初的字节确实是\xEF\xBB\xBF
后跟文档本身,那么它是一个UTF-8人造BOM。尽管UTF-8人造材料清单是一种犯规错误,生成它们的工具需要使用特殊编程酸销毁,但XML规范确实可以识别和忽略此字节序列,因此如果您的SAX解析器不符合要求并需要一些踢。
如果是给你最初的字节
实际上是类似的一个:
\xC3\xAF\xC2\xBB\xC2\xBF
\xEF\xBB\xBF\xC3\xAF\xC2\xBB\xC2\xBF
\xEF\x00\xBB\x00\xBF\x00
\xFF\xFE\xEF\x00\xBB\x00\xBF\x00
那么你所得到的是双重编码的意外。在这种情况下,您需要查看生成该文件的程序,因为它的格式不正确,SAX解析器可能是正确的,并且文件中的其他Unicode字符也可能会混淆。可能它正在做一些愚蠢的事情,例如将文档串行化成字节串,然后通过伪造的解码/编码循环发送它。无论采用哪种方式,如果您需要让解析器跳过麻烦的字节序列,则必须使用您手动入侵的版本来删除此前缀。不知道你的SAX解析器是什么(甚至是什么语言),很难说如何做到这一点。
也许你可以在将它传递给解析器之前寻找输入流?也许你可以将文件读入一个字节字符串,并将其中的初始字节删除到解析器?如果你的解析器没有给你这些选项,你将不得不以字节为单位加载文件,剪辑开始并保存到一个新的文件。
相关问题
- 1. 忽略用C字节顺序标记++,从流
- 2. 让SAXParser忽略转义字符
- 3. ICU字节顺序标记(BOM)
- 4. StreamWriter和UTF-8字节顺序标记
- 5. 字节顺序标记问题
- 6. Ruby:检查字节顺序标记
- 7. 忽略DataContractSerializer中的字段顺序
- 8. 顺序忽略第四个字符
- 9. FOR XML PATH忽略字母顺序
- 10. 忽略不关心顺序
- 11. findall忽略顺序参数?
- 12. 如何让SAXParser忽略转义码
- 13. Richfaces标记被忽略
- 14. Maven忽略scm标记
- 15. XML :: Simple忽略emdash标记?
- 16. XPath忽略结束标记
- 17. 转换字节数组的文本将字节顺序标记检测
- 18. git_revwalk忽略推送参考的顺序?
- 19. 八度 - 匹配数组,忽略顺序
- 20. is_deeply测试忽略数组顺序?
- 21. 聚合子文档忽略键顺序
- 22. 重复值忽略列顺序
- 23. 删除R/C中的字节顺序标记
- 24. 问题与XDocument和BOM(字节顺序标记)
- 25. 字节顺序标记会造成错误
- 26. 处理R中的字节顺序标记(BOM)
- 27. PDF文档中是否允许字节顺序标记?
- 28. 使用Emacs删除字节顺序标记(BOM)
- 29. 设置nobomb不删除vim中的字节顺序标记
- 30. 输出增加了字节顺序标记的XML
有可能没有办法...只保存没有BOM – 2010-04-16 11:30:07