项目场景:
例如:项目场景:添加优惠卷信息、中文显示乱码
问题描述
例如:这里新增优惠卷、到数据库显示乱码
@Override @Transactional public void addSeckillVoucher(Voucher voucher) { // 保存优惠券 voucherMapper.insert(voucher); //save(voucher); // 保存秒杀信息 SeckillVoucher seckillVoucher = new SeckillVoucher(); seckillVoucher.setVoucherId(voucher.getId()); seckillVoucher.setStock(voucher.getStock()); seckillVoucher.setBeginTime(voucher.getBeginTime()); seckillVoucher.setEndTime(voucher.getEndTime()); seckillVoucherService.save(seckillVoucher); }
原因分析:
第一:排查数据库、表、字段、编码设计,确定是否是utf_8,并且在数据库插入一条记录,没问题,排除数据库问题原因。
第二:排查数据库连接是否设置了字符集编码规则,没问题。
第三:排查过滤器是否过滤字符编码,没问题。
解决方案:
但是yaml文件中、多了个"amp;" 这个会导致后面的编码规则失效!!! url:jdbc:mysql://127.0.0.1:3306/hmdp_redisuseUnicode=true&characterEncoding=UTF-8
解决方法:把这个amp;删了、即可生效