mysql查询中文乱码问题

1
2

Navicat和JDBC中都是正常的(Windows),通过cmd(代码页utf8)进mysql,查询结果是第一张图左边;直接进mysql(代码页简体中文GBK)效果第一张图右边。命令查看mysql编码第二张图。
关于mysql乱码问题网上也看了几篇教程,但是都没啥用啊。

注意几点,我之前自学也遇到了,
1:client,connection,results这三个编码属性必须一致。你看你的这些属性都设置为utf-8。但是在CMD窗口上右键看看自己的编码 是GBK的。
这是错误的关键点。但是通过source导入的的是utf-8编码的sql脚本,虽然cmd是GBK的,但是这与你告诉的mysql你的client是一致的编码。能正常导入。
2: 解决办法,可以chcp 65001命令修改cmd的编码格式,但是不建议,这样就不能输入中文了。再改回是chcp 936。当然还需选字体神马的,你具体自己百度。
3:我常用的就是:charset gbk; 后client,connection,results编码变为gbk,不过每次打开cmd后,都需要重新charset gbk;

请务必保证你的工作环境的编码与 你告诉mysql的client,connection,results编码一致即可。
自己琢磨的总结,希望对你有帮助。

数据库mysql客户端只认gbk,这个意思不是你的代码页面要设置为gbk,代码页面可以是gbk,也可以是utf-8,要设置的是客户端编码
可以在mysql客户端输入如下指令:
set names gbk;
然后查询你再看看有没有乱码?

字符集问题,你改下试试

用可视化工具把表的编码搞UTF-8即可