1. 修改mysql数据库的整体编码 查看方式数据库编码:
show variables like 'character%';
出现上图情况时,可以进行数据库配置文件my.ini 文件修改:
打开my.ini找到[client]添加一行
default-character-set=utf8
找到[mysqld]这行添加代码如下
character_set_server=utf8
init_connect='SET NAMES utf8'
要记住,一般该配置文件是拒绝访问的,更别提修改了,此时可以将该文件复制到桌面,修改为txt格式强行修改内容,然后改回ini文件格式并将之前的my.ini文件删除,然后将桌面上已经修改好的my.ini复制进去(这一系列操作都需要管理员权限才行)
但此时我的乱码问题依然没有解决,于是我将目光转向了eclipse。
2. 修改eclipse的页面编码
在eclipse中的window—preferences—General—workspace—页面左下角中的Text file encoding 设置为utf-8,这样只能保证新建文件和打开文件时不会出现乱码。
3. 修改jdbc连接属性编码
有一次乱码问题是通过在jdbc连接属性中的url=jdbc:mysql://localhost:3306/contact_sys的最后加入?useUnicode=true&characterEncoding=utf-8,就像是在Get请求在url下加入一下参数一样,这样就确保了java与mysql进行连接时的编码统一,很遗憾,还是没解决我的问题。
4. 修改JSP页面编码和tomcat服务器编码
引用自:http://blog.csdn.net/lhfeng/article/details/6311787
里面的一句话成功的吸引了我的注意:tomcat默认使用iso-8859-1进行提交的数据解码,而提交的数据是使用utf-8编码的,编解码对不上自然会出现乱码.解决办法就是指定解码方式。
于是我决定彻底解决问题:在tomcat/cof/server.xml配置文件中,修改其默认编码
找到如下代码:
<Connector port="8080"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
在其中加入如下代码:
useBodyEncodingForURI="true"URIEncoding="UTF-8"
其实该方法的作用很局限:当你已经设置了request.setCharacterEncoding("UTF-8");时,所有的post请求都会按照utf-8的编码来编解码,只有Get请求在处理时会按照tomcat的默认编码来解码,因此这项措施是针对获取get请求参数数据中文乱码的问题方法。