1,在数据库mysql命令行中,先选中数据库,比如use test
然后执行charset utf8 //改变编码
2,然后查询已经存入的表中的汉字记录。看看有没有乱码,如果没有乱码说明存入数据库的数据(或者说navicat编码)就是utf8
3,如果是乱码,就不断的切换编码(charset gbk, charset gb2312.....),直到select显示的结果不现乱码
4,假如你设置charset gbk后,select 的汉字不是乱码,说明你的数据库中已经存了gbk的汉字了,对于其它乱码数据,那没办法,数据库中的数据只能删除了重新录入。
要充分理解mysql字符集有很多环节的概念,最重要的3个:
database:就是数据库内部存储字符串用的编码
connect :就是通过socket与mysql通信时的网络编码;
client:mysql命令终端和navicat都属于客户端,后台那个mysql进程才属于服务端(server);
以上3个字符集必须都一样。如果database和connect都是utf8,而client是gbk,那么你再通过utf8的编码去select出来,肯定是乱码。
原文:https://www.cnblogs.com/wskb/p/11557331.html