最近在练手,写了一个注册的登陆,注册完成后数据库中的中文却显示为乱码,想了想估计是编码的问题,于是去百度,找了很多方法,爬了一些坑,现在将方法做一个总结
1.Mysql编码设置
数据库中显示中文乱码,所以需要修改数据库编码
在终端中输入:
mysql> SHOW VARIABLES LIKE 'character%';
来查看当前数据库的编码状态
可以看到有很多对应的是latin1,我们需要将其修改成UTF-8
这里直接给出最有效的解决方法:修改Mysql配置文件
配置文件在 /etc/my.cnf
我们直接进入
my.cnf
在[mysqld]后面加上一句
character-set-server=utf8
注意:一定要加在[mysqld]下面一行,我之前加到了下面,导致Mysql重启失败
加完之后保存并退出,重启mysql,再次查看编码
我们发现编码都已经改成了UTF-8
至此Mysql编码设置完毕
2.Tomcat编码设置
在设置完Mysql后,我发现数据库写入进去的中文数据仍然是乱码,于是猜到是Tomcat编码还没设置好
设置Tomcat编码
Tomcat的配置文件在 tomcat目录下的server.xml
进入 server.xml中,在如下位置加入代码:URIEncoding="UTF-8"
保存退出后重启Tomcat服务器
至此,彻底解决了乱码的问题