MyEclipse 2016 CI 版本实时预览功能引发的中文乱码的Bug

今天一个加入我的QQ群:IT十年(170273637)的朋友,请教关于MyEclipse 2016 CI 3 JSP页面中文乱码的问题;开始是JSP页面在编辑器中乱码,解决之后又发现在浏览器中查看是乱码,说是该配置的都已经配置了,还问我是不是MyEclipse新版本的问题,我当时还很自信的说应该不是;由于当时是工作时间不方便,我就说晚上帮他看看。

中文乱码问题

搞Web开发的,特别是Java Web开发最常遇到这种问题,也是最头疼的,对于初学者来说!

出现乱码问题,要检查以下几个方面:

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的方法来设置输出内容的编码方式,有以下三个方法: 


1、response.setCharacterEncoding("UTF-8");
2、response.setContentType("text/html;charset=UTF-8");
3、response.setLocale(new java.util.Locale("zh","CN"));
通常用第一个就够了;

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 2016 CI 版本实时预览功能引发的中文乱码的Bug

点击“眼睛”图标,可以开启或关闭实时预览功能

MyEclipse 2016 CI 版本实时预览功能引发的中文乱码的Bug

结束语

做人要严谨,写代码更要严谨!

今天是七夕,早上刚犯了个错误,把乞巧节看成了乞丐节!

今天是七夕,你们是怎么过的?

我?这不就和MyEclipse的Bug战斗了一个晚上!

上一篇:云计算及AI浪潮下的职业新物种DBAI及首讲AI入门课程


下一篇:使用Riverbed SteelCentral NetProfiler,大海捞针不再难