1、 修改mysql数据库的整体编码
查看方式数据库编码:
show variables like '%char%';
上图是我已经改好的
首先可以进行数据库配置文件my.ini 文件修改:
打开my.ini找到[client]添加一行
default-character-set=utf8
找到[mysqld]这行添加代码如下
character-set-server=utf8
collation-server=utf8_general_ci
要记住,一般该配置文件是拒绝访问的,更别提修改了,此时可以将该文件复制到桌面,在桌面上以记事本的形式打开my.ini,然后将桌面上已经修改好的my.ini复制进去。
重新打开mysql,查询字符:show variables like '%char%'; 可能还会有两项不是utf8
可以使用下面的语句进行修改
set character_set_database=utf8;
set character_set_server=utf8;
此时,先不要着急重新建表或者插入数据,接下来的操作很重要,很重要,很重要,重要的事情说三遍
(有多重要,如果你不进行下面的操作,怎么改都不会显示中文)
一定要重启你的数据库服务器
我的电脑,右击,选择管理,点开服务,找到MySQL,重启动此服务
(此修改对已插入的数据无效)
(你也可以通过命令重启mysql的服务器,命令问度娘)
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、 tomcat服务器编码
tomcat默认使用iso-8859-1进行提交的数据解码,而提交的数据是使用utf-8编码的,编解码对不上自然会出现乱码.解决办法就是指定解码方式。
于是我决定彻底解决问题:在tomcat/cof/server.xml配置文件中,修改其默认编码
找到如下代码:
<Connector port="8080"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
在其中加入如下代码:
URIEncoding="UTF-8"
5、 新建数据表,插入数据测试,就可以正常显示中文了。