MySQL中文 乱码之每天踩一坑
本人在这踩坑2小时,解决问题2分钟,为方便今后快速解决下列问题,决定做个记录,方便下次查看!!
问题描述
在编写项目进行的热火朝天的时候,在代码写好准备自测的时候,一顿“select * from *”,当数据显示出来的时候,
就是人崩溃的时候,啥?这问号是啥情况,控制台打出都没毛病。
然后一顿排查,先是前端传给后台数据格式,然后后台传回前端格式,连接数据库格式,甚至网上很多人说的
用show variables like “%colla%”;show varables like “%char%”;查看,遇到不是utf-8格式的都改,然后我照做了,结果还是
啪啪打脸,中文数据还是显示?;
解决方案:
总结为一下3点:
1.控制台打印为乱码则排查前后端数据传输格式,例:
response.setContentType("application/json;charset=utf-8");
2.控制台打印能正常显示则排查数据库连接文件properties
url=jdbc:mysql:///test?useSSL=false&characterEncoding=utf-8&autoReconnect=true
3.检查数据库创建语言格式
use test;//切换到需要查询的表格
show variables like 'character_set_database';