org.xml.sax.SAXParseException: Content is not allowed in prolog
来源:互联网 发布:pop3端口号是多少 编辑:程序博客网 时间:2024/05/13 20:57
最近在使用 dom4j 读取一个xml 文件,xml 文件为 utf-8 读取格式 也为utf-8;不知道为什么,死活读取不了,就是要报:
org.xml.sax.SAXParseException: Content is not allowed in prolog 这个错误,搞到我很郁闷!
后来上网搜索一看,原来这里的水也不浅。
BOM(Byte Order Mark),是UTF编码方案里用于标识编码的标准标记,在UTF-16里本来是FF FE,变成UTF-8就成了EF BB BF。这个标记是可选的,因为UTF8字节没有顺序,所以它可以被用来检测一个字节流是否是UTF-8编码的。微软做这种检测,但有些软件不做这种检测,而把它当作正常字符处理。
微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节, windows上面的notepad等程序就是根据这三个字节来确定一个文本文件是ASCII的还是UTF-8的, 然而这个只是微软暗自作的标记, 其它平台上并没有对UTF-8文本文件做个这样的标记。
也就是说一个UTF-8文件可能有BOM,也可能没有BOM,那么怎么区分呢?三种方法。1,用UltraEdit-32打开文件,切换到十六进制编辑模式,察看文件头部是否有EF BB BF。2,用Dreamweaver打开,察看页面属性,看“包括Unicode签名BOM”前面是否有个勾。3,用Windows的记事本打开,选择 “另存为”,看文件的默认编码是UTF-8还是ANSI,如果是ANSI则不带BOM。
到这里,真相大白,可恶的微软,把utf-8 格式的文件在前边加了 EF BB BF三个字节 ,而dom4j 不认这些!我们使用ue 打开xml 文件,另存为"utf-8 无bom" 大功告成。
- org.xml.sax.SAXParseException: Content is not allowed in prolog.
- org.xml.sax.SAXParseException: Content is not allowed in prolog
- org.xml.sax.SAXParseException: Content is not allowed in prolog
- org.xml.sax.SAXParseException: Content is not allowed in prolog.
- org.xml.sax.SAXParseException: Content is not allowed in prolog.
- org.xml.sax.SAXParseException: Content is not allowed in prolog.
- sax解析xml运行出现错误org.xml.sax.SAXParseException: Content is not allowed in prolog.
- sax解析xml运行出现错误org.xml.sax.SAXParseException: Content is not allowed in prolog
- sax错误:org.xml.sax.SAXParseException: Content is not allowed in prolog解决
- sax错误:org.xml.sax.SAXParseException: Content is not allowed in prolog 终极解决
- sax错误:org.xml.sax.SAXParseException: Content is not allowed in prolog解决
- sax错误:org.xml.sax.SAXParseException: Content is not allowed in prolog解决
- sax错误:org.xml.sax.SAXParseException: Content is not allowed in prolog
- sax错误:org.xml.sax.SAXParseException: Content is not allowed in prolog解决
- SAX解析xml:SAXParseException: Content is not allowed in prolog
- XML :org.xml.sax.SAXParseException: Content is not allowed in prolog
- org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog
- 解决org.xml.sax.SAXParseException:Content is not allowed in prolog
- unity3d学习笔记(十三)--如何拦截射线碰撞界面的消息
- 进程和线程以及区别
- C#源码500份
- Missian指南二:准备工作
- java中String,Date,Timestamp之间的相互转换
- org.xml.sax.SAXParseException: Content is not allowed in prolog
- iOS 图片压缩
- DAS、NAS、SAN存储技术的比较
- OCP-1Z0-051-V9.02-82题
- iOS7适配之设计篇
- 【Java工程师之路】[2-1.9]数据库视图介绍
- 【笔记】安卓不支持JSON包
- hbase phoenix批量插入数据例子
- 解决eclipse老是检测不到手机设备方法