一、问题描述:
当我打开navicat时,发现我的user表中的username中文数据全部显示 ?如下图所示:
二、解决办法:
1、查看字符编码
在 navicat 中新建查询,然后输入下面这段指令
show variables like 'character_set%';
然后输出如下:发现我的字符编码很多是latin1,而不是utf8
2、将 latin1 修改成 utf8
继续输入如下指令:
set character_set_client = utf8;
set character_set_connection = utf8;
set character_set_results = utf8;
set character_set_server = utf8;
然后再输入这段指令查看修改后的字符集:
show variables like 'character_set%';
显示的结果已经修改完成:
3、验证结果
现在往user表中加入一条数据,看保存是否还会显示?
发现正常了,搞定了
4、该问题引发的一个踩坑记录
我在使用 mp 中的 selectList() 方法时,我对username这个中文数据列进行模糊查询,然后通过日志发现,我的 sql 语句以及 条件都是正常的,但是在 mp 中总是查询不出,然后当我使用这个sql语句放到 mysql 中执行时发现却是正常的,然后我使用上述操作将字符编码统一时,再次执行selectList()方法,结果就是正常的了