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" 替换项目中的文件,重新编译一下问题解决。 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字节没有顺序,所以它可 import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Reader; import java.io...
今天,更新了struts.xml之后,xml头竟然报错: Content is not allowed in prolog 百度之后说是不同的编辑器保存时多了一个BOM头,具体也没看懂。接下来要说 终极解决方案: 从一个正常的xml文件中,把头信息复制到出问题的xml中 <?xml version="1.0" encoding="UTF-8"?> 注意:自己手动在文本里敲...
1.xml编码错误 该xml是UTF-8编码的,如果该文件通过UltraEdit编辑后,会在无BOM头的UTF-8文件中加入BOM,但是DOM4j不认这个BOM(dom4j1.3),解决的办法可以通过升级dom4j到1.6解决www.dom4j.org 什么是BOM?http://www.unicode.org/faq/utf_bom.html#22Unico
今天出现了 Content is not allowed in prolog .错误,本以为是tomcat的lib错误。重新下了个新的tomcat,依旧如此。后来才发现是XML文件写的格式错误。 Exception sending context initialized event to listener instance of class org.springframework.web.conte
解析一个xml文件时引起次 异常 ,可能是由于BOM引起的 BOM:Byte Order Mask,中文名字节顺序标记,UCS规范建议在输出字节流之前,先传输BOM来判断字节顺序。UTF-8其实不需要依靠BOM来表示字节顺序的,但是可以用BOM来表示编码 方式 。 解决办法: 从一个正常的xml文件中,把头信息复制到出问题的xml中 <?xml vers
mysql报如下错误,截取部分, message from server: “Host ‘****’ is not allowed to connect to this MySQL server 1:在登录mysql服务器 2:执行:GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ WITH GRANT OPTION //赋予任何主机访问数据的权限 3:FLUSH PRIVILEGES //修改生效 这样就可以在其它任何的主机上以root身份登录啦! 您可能感兴趣的文章:mysql登录报错提示:ERROR 104
尝试使用Nginx进行反向代理过程中出现如下错误: 代码如下: nginx: [emerg] “proxy_cache_path” directive is not allowed here in /etc/nginx/conf.d/default.conf:29 提示意思“proxy_cache_path指令不被允许”,在官网上查找了相关说明,也没有发现问题,最后看应用范围才知道,他只能使用于http{  }部分,把proxy_cache_path放置于http部分即可解决此问题 参见:http://nginx.org/cn/docs/http/ngx_http_proxy_module.
在服务器中安装选择server only 时使用navicat for mysql远程链接报错 Host 主机名 is not allowed to connect the mysql server 原因 :没有授权远程访问mysql 解决方法: cmd 中运行mysql -u root -p(如果报mysql 不是内部或外部命令,找到安装mysql对应的bin文件夹运行mysql.exe,如果闪退,在cmd中运行 cd 路径/bin,在运行)  use mysql;   select host from user where user=’root’; 执行update user set