关于乱码问题的一点小心得

和jsp页面出现了乱码的时候,一般情况下可以通过三个途径来检测你在哪个环节出现了问题:
1,首先,建立好数据库以后(并且建好了表),你直接在数据库的操作界面直接向数据库插入一条中文数据进去。
有两种情况:

(1)出现乱码,那说明你的数据库配置出现了问题,所以,根据网上的资料和个人的经验(以MysqL为例),你可以找到你数据库安装目录下的(我的目录是C:Program Files (x86)MySQLMySQL Server 5.0),my.ini文件,打开设置两个地方的值:default-character-set=gbk     default-character-set=gbk这两个地方的charset都设置成utf8就行。
然后再插入一条数据,看出现乱码不?一般情况下都不会是乱码了。
(2)不会出现乱码说明你的数据库的转码是没有问题的。
2,就是检测myeclipse的转码了
当你连接上数据库后,前面向数据库插入的中文数据如果可以在myeclipse中显示出来说明你的myeclipse的转码配置是没有问题的但是,如果还是有乱码的话,你可以去这几个地方设置一下 ,首先是myeclipse自身的设置,windows-->preference-->myeclipse-->Files and Editors中可以设置你的各种界面的编码方式(什么jsp,asp,php等等),

然后就是在页面本身的设置了,在jsp页面中添加这样一句话就行了,当然你的jsp页面本身的存储编码就应该是支持中文的编码。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page contentType="text/html;charset=utf-8"%> ;

再然后就是可能数据库的连接是出现了转码异常,在连接数据库的URL中添加这么一句话,useUnicode=true&characterEncoding=utf8,另外可以在执行数据库语句的时候使用set names utf8。具体是prst.executeQuery("set names utf8");
(3)接下来就是tomcat的设置了。更改tomcat中的配置文件有没有用我也不太清楚,因为我没有改也解决了,网上的人说改。但是这里还是有必要提一下,更改的配置文件是tomcat的server.xml配置文件中的编码(至于web.xml中的charset一般都是utf-8吧,这里就不改了)
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />。
(4)最后就是更改java页面的请求配置了,因为,数据从数据库中道jsp页面需要经过tomcat(或者是application server)的转码,在封装到请求中或者相应中,那么需要在获取数据的地方提前进行编码的设定,添加如下两句话就行了。
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
当然,还有一些其他解决办法,具体参见http://www.jb51.net/article/40203.htm,这里的写的很详细,值得一看。

原文地址:https://www.cnblogs.com/cloudblogs/p/4483964.html