首页 > Web > 无BOM头的UTF-8格式的jsp文件中文乱码问题

无BOM头的UTF-8格式的jsp文件中文乱码问题

2015-05-28 02:28 星期四    浏览: 1,305    绿 发表评论 阅读评论

问题由来:JSP文件中有个别中文字符,在部署到tomcat中(包括Linux环境和Windwos环境)后,浏览器中打开显示乱码。而在java代码中的中文字符通过EL表达式在JSP中展现时,无乱码问题。
排查过程:
step1)在Eclipse中,检查工程属性,确保采用UTF-8格式;还再次须将全部jsp文件、js、css文件等全部保存为UTF-8格式,windows->preference->content type中输入jsp过滤,确保所有源码文件为UTF-8格式;

step2)检查浏览器乱码页面的HTML源码,发现也是UTF-8:

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />

step3)检查JSP文件,也设置了编码格式为UTF-8:
<%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8″  contentType=”text/html;charset=utf-8″ %>
step4)反复尝试各种办法,问题依旧。回想起调试时,有时直接拿windows记事本修改部署在tomcat下的jsp源码文件,而保存之后的页面在浏览器中访问时就不会乱码。特意再试,仍然如此。再拿UltraEdit打开Eclipse中编辑的文件,和不做任何修改经过windows记事本保存的同样的文件,按Ctrl-H进入二进制查看模式,发现经过windows记事本保存的文件前面加上了EF BB BF三个字节,即所谓的标示UTF-8的BOM(Byte Order Mark)文件头。加了BOM头的jsp文件部署到Tomcat上则不会乱码,而不加直接在Eclipse中新建保存的无BOM头的则会乱码。这跟网上说的,带BOM头的却容易带来问题相反。

step5)拿windwos记事本把有中文的jsp文件全部再保存一遍,上传至服务器,发现不再有任何乱码。拿git status查看发现经过记事本保存的文件都是modified,git diff一下,也能看到文件头的细微变化:

UTF8 BOM头

UTF-8 BOM头

 

本文链接地址: http://blog.redwolf-soft.com/?p=2447

原创文章,版权©红狼博客所有, 转载随意,但请注明出处。

    分享到:

相关文章:

  • 无相关文章
分类: Web 标签: , ,
  1. 本文目前尚无任何评论.
订阅评论
  欢迎参与讨论,请在这里发表您的看法、交流您的观点。