数据库乱码 解决问题思路及方法

思路:
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 的时候需要冷静,逐条分析,相信自己的代码,心态不能崩,崩了就脑子不会转了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值