思路:
MySQL之所以会乱码,无非是以下几种原因:
1、存进数据库之前就乱码
2、在存进数据库过程中乱码
3、存进数据库后乱码
想知道在哪里出现乱码很简单,在后台打印一下就知道了。
既然知道问题出在哪里,那解决方法也很简单:
1、jsp设置编码是utf-8,保证传到后台的是utf-8的编码
2、将传到后台的请求的参数转为utf-8的编码。至于使用哪种方法,可以使用spring的拦截器,也可以自己写一个,也可以手动转换。
3、在数据库连接上加这么一段jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8,保证传输过程是utf-8的。
4、设置数据库的编码为utf-8,在my.ini设置或者在Config设置也行,注意的是my.ini里default-character-set要改两处地方
5、url或者easyui乱码,可以试一下将tomcat的server.xml中的
改为
要保证不乱码,首先要做到编码要统一,其他问题都好找出来。完。
引用:
https://www.cnblogs.com/ginponson/p/4310033.html
我们对上面的情况逐个分析
1、存进数据库之前就乱码
需要查询代码中是否没有转utf-8(仔细认真检查下)
2、在存进数据库过程中乱码
//todo
目前想起不起来场景(大脑宕机了。。。)
3、存进数据库后乱码
需要检查以下配置
1.数据库编码格式
2.数据表编码格式
3.字段编码格式
还有一种比较特殊的,也是被我这个幸运儿遇到的问题,在用jar直接启动服务的时候出现了乱码,需要在jar启动的时候就要标注启动格式例如:java -d64 -server -Xms512m -Xmx4096m -Dfile.encoding=utf-8 -jar common-client.jar
除去这些,回顾这个问题,其实我们在找bug 的时候需要冷静,逐条分析,相信自己的代码,心态不能崩,崩了就脑子不会转了!