Content is not allowed in prolog异常产生原因及处理方式
2017-08-05 13:36
567 查看
web项目在启动的时候报Content is not allowed in prolog错误,后经检查发现是web项目在使用dom4j/sax 读取一个xml文件时报错。
原因如下:
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文本文件做个这样的标记。
由于windows平台把utf-8 格式的文件在前边加了 EF BB BF三个字节 ,而dom4j 不认这些!所以可以使用ue或Notepad++打开xml 文件,另存为"utf-8 无bom" 替换项目中的文件,重新编译一下问题解决。
原因如下:
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文本文件做个这样的标记。
由于windows平台把utf-8 格式的文件在前边加了 EF BB BF三个字节 ,而dom4j 不认这些!所以可以使用ue或Notepad++打开xml 文件,另存为"utf-8 无bom" 替换项目中的文件,重新编译一下问题解决。
相关文章推荐
- Content is not allowed in prolog异常产生原因及处理方式
- weblogic对xml中BOM处理异常——org.xml.sax.SAXParseException:Content is not allowed in prolog
- ibatis的sqlmap.xml 报错:Content is not allowed in prolog异常的原因
- UE编辑的XML,如果字符集为“UTF-8”,Content is not allowed in prolog异常问题
- DOM解析XML报错:Content is not allowed in prolog
- Content is not allowed in prolog
- Content is not allowed in prolog
- 关于 SAXParseException Content is not allowed in Prolog (前言中不允许有内容)
- Xml解析Exception:Content is not allowed in prolog
- 读取XML文件报 - Content is not allowed in prolog
- properties、xml content is not allowed in prolog
- tom启动报错:org.xml.sax.SAXParseException: Content is not allowed in prolog.
- sax解析xml运行出现错误org.xml.sax.SAXParseException: Content is not allowed in prolog.
- 启动tomcat是出现错误( Parse Fatal Error at line 1 column 1: Content is not allowed in prolog.)
- org.dom4j.DocumentException: Content is not allowed in prolog. 解决办法
- 读取XML文件报 - Content is not allowed in prolog
- Parse Fatal Error at line 1 column 1: Content is not allowed in prolog. org.xml.sax.SAXParseExceptio
- java web Content is not allowed in prolog-解决
- sax错误:org.xml.sax.SAXParseException: Content is not allowed in prolog解决
- ant批量运行Jmeter脚本遇到 Content is not allowed in prolog.问题及解决方案