今天一个加入我的QQ群:IT十年(170273637)的朋友,请教关于MyEclipse 2016 CI 3 JSP页面中文乱码的问题;开始是JSP页面在编辑器中乱码,解决之后又发现在浏览器中查看是乱码,说是该配置的都已经配置了,还问我是不是MyEclipse新版本的问题,我当时还很自信的说应该不是;由于当时是工作时间不方便,我就说晚上帮他看看。
中文乱码问题
出现乱码问题,要检查以下几个方面:
1、文件的编码
MyEclipse中可以查看文件的属性,看默认编码是什么;
2、HTML中的编码
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />3、JSP的编码
<%@ page language="java" pageEncoding="UTF-8"%>4、如果是通过Java代码输出内容,需要设置响应内容的编码
在java后台的Action代码或者Servlet代码中用response的方法来设置输出内容的编码方式,有以下三个方法:
5、如果用了其它的框架,可能还需要设置框架的默认编码
6、执行请求的编码
request.setCharacterEncoding("UTF-8")7、Tomcat等容器的默认编码
默认情况下,tomcat使用的的编码方式:iso8859-1
修改tomcat下的conf/server.xml文件
找到如下代码:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />这段代码规定了Tomcat监听HTTP请求的端口号等信息。
可以在这里添加一个属性:URIEncoding,将该属性值设置为UTF-8,即可让Tomcat(默认ISO-8859-1编码)以UTF-8的编码处理get请求。
修改完成后:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
尴尬的境地
这一次我错了,晚上通过远程桌面查看,Tomcat的默认编码没有配置,按照上面的配置之后默认页面好了。我就认为肯定没问题了。这朋友很聪明,立马新建一个JSP页面,输入几个中文在浏览器中查看,结果又出现乱码了,NM这我就蒙逼了!还好,我想到了查看网页源文件,打开之后我都惊呆了,一个新建的JSP页面不足十行HTML代码,在浏览器中查看源文件却有上千行代码(粗略估计),其中看到最多的除了脚本,就是HTML标签中的“data-genuitec”属性,密密麻麻的,我的密集恐惧症差点犯了。搜索吧,完全不知道这东西是什么鬼,还好找到一篇文章“MyEclipse2016 live preview功能引发的问题”,找到问题关键了。还真是新版本的Bug惹的祸。
解决方法
关闭实时预览功能
点击“眼睛”图标,可以开启或关闭实时预览功能
结束语
做人要严谨,写代码更要严谨!
今天是七夕,早上刚犯了个错误,把乞巧节看成了乞丐节!
今天是七夕,你们是怎么过的?
我?这不就和MyEclipse的Bug战斗了一个晚上!