使用java连接MySql,中文乱码解决的方法
排查MySql中文乱码的问题
1.在cmd中启动MySql。
打开命令提示符cmd,输入"mysql -uusername -ppassword",回车,就可以连接到数据库。
如输入"mysql -uscott -ptiger"然后回车
2.查看字符集
输入"show variables like 'character_set_%';",回车
可以看到如下字样:
则表明,字符集全部设置为utf8了,正常。(注意,mysql中"utf-8"一律写作"utf8",其他的软件和数据库不遵此例)
如果不是 则用
set 字段名=utf8;的方式设置;
tomcat中的问题:
如果你做查询后,结果全是????。。看后面的。如果是完全查不到数据,则很有可能Tomcat的字符集配置错误。
(Tomcat的问题你可以这样解决:
1.在Tomcat安装目录下的conf目录中找到server.xml文件,打开,在其中找到这一段
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
红色部分是你要添加的部分。
2.在servlet的doPost方法的最开始加上两句
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
这样子Tomcat的中文乱码的问题就可以解决了。
)