mysql 乱码问题

mysql 查询中文出现乱码的问题,在可视化界面查询是正常的,在dos窗口查询是乱码的,百度查询了,大多数都是修改编码,尝试过
set names gbk;
set names utf8;
set names gb2312;

set character_set_client=gbk;
set character_set_connection=utf8;
set character_set_results=gbk;
都没效果,有没有哪位大佬知道怎么弄吗?

image.png

image.png

image.png

image.png

image.png

image.png

阅读 2.1k
1 个回答

编码之类的往往牵扯到很多因素
比如你的 cmd shell 环境本身的编码,然后是连接的编码,表的编码,字段的编码,都得顺,这才能顺利的输出
我没记错的话简体中文 windows 的 cmd 默认应该是 cp936 也就是 gbk 编码 (为了兼容以前的程序)
这时候你就要你的文本的输出必须也是 gbk 编码才不会乱码
使用 chcp /? 应该可以看当下的 cmd 的 shell 环境编码是什么
使用 chcp 936 可以切换为 gbk
使用 chcp 65001 可以切换为 utf-8

然后这种情况下如果你的 mysql 非 gbk 编码,就比如说,现代应用为了国际化大多数在 mysql 这里会使用 utf8 或者 utf8mb4 (实际上这才是 mysql 真正的 utf8 编码)

所以就需要你的 cmd 的 shell 环境, mysql 客户端的连接会话都是 utf8 才能正确显示

PS: 既然你的 GUI 内没问题,其实也可以在 gui 起一个 sql 编辑器,然后运行 show variables like '%char%' 从而看看那个下面的字符集相关的环境变量,可以做个参考

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题