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;
都没效果,有没有哪位大佬知道怎么弄吗?
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;
都没效果,有没有哪位大佬知道怎么弄吗?
5 回答3.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
5 回答1.4k 阅读
编码之类的往往牵扯到很多因素
比如你的 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%'
从而看看那个下面的字符集相关的环境变量,可以做个参考