MySQL中UTF-8编码的数据在CMD命令行显示乱码解决方案
2017-02-15 00:07
411 查看
相信很多人都在windows系统下使用cmd命令行访问mysql数据库都会遇到过一个问题,那就是显示utf-8编码的数据时会出现中文乱码情况,那么我就说下我的解决方案。
从这里可以知道mysql数据库已经被设置为utf-8编码方式。
我们再来创建一个student表,表结构如下:
在Navicat工具里为student表插入两条信息
然后我们在Navicat工具里通过命令行窗口查询student表的建表信息和数据
我们再通过windows的cmd命令行访问student表
现在改从cmd命令行插入数据:
但直接在cmd中输入包含中文的insert语句时,mysql会报错(原因等会再说)
那就先写好一个sql脚本,再通过source命令导入就不会报错了
可以看到,client,connection和result的编码已经设置为gbk了,但server,database,system的编码还是utf-8!这就是说,虽然数据是使用utf-8编码存储的,但是客户端以及返回的结果集是gbk的,而此时cmd窗口的编码正好是gbk,因此该结果集能正确显示了。
测试环境信息
OS : windows 10 专业版 64位 14393
MySQL : MySQL Server 5.5 64位
先来查询一下自己系统上MySQL数据库的编码情况,输入以下命令show variables like '%character%';
从这里可以知道mysql数据库已经被设置为utf-8编码方式。
示例
我通过Navicat工具创建一个测试数据库 Test,保证数据库、数据表、数据库文件都是UTF8-编码方式。我们再来创建一个student表,表结构如下:
在Navicat工具里为student表插入两条信息
然后我们在Navicat工具里通过命令行窗口查询student表的建表信息和数据
我们再通过windows的cmd命令行访问student表
现在改从cmd命令行插入数据:
但直接在cmd中输入包含中文的insert语句时,mysql会报错(原因等会再说)
那就先写好一个sql脚本,再通过source命令导入就不会报错了
source xx.sql
以上的案例估计就是大家经常会遇上的中文乱码问题了。
为什么会出现中文乱码呢?
这是因为Windows的CMD默认编码是GBK,MySQL里面是按照UTF-8编码存储数据的,所以CMD不支持自然就乱码了。而刚才我们使用到的Navicat工具,由于它本身的编码被设置为utf-8,所以我们的各种操作都能正常进行。解决方案
在输入SQL语句前先设置编码:set names gbk ,再输入SQL。
为什么这样设置就能正常显示utf-8编码的数据呢?
请看图:可以看到,client,connection和result的编码已经设置为gbk了,但server,database,system的编码还是utf-8!这就是说,虽然数据是使用utf-8编码存储的,但是客户端以及返回的结果集是gbk的,而此时cmd窗口的编码正好是gbk,因此该结果集能正确显示了。
相关文章推荐
- 解决MySQL中UTF-8编码的数据在命令行显示乱码
- 解决MySQL中UTF-8编码的数据在命令行显示乱码
- 解决MySQL中UTF-8编码的数据在命令行显示乱码
- MySql中UTF-8编码的数据在CMD窗口显示乱码的解决方法
- cmd取UTF-8编码的数据显示乱码
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- mysql数据在网页上显示乱码解决方案
- cmd取UTF-8编码的数据显示乱码
- 明明编码都是utf-8但是抓包和第三方接口收到的数据都是乱码问题的原因和解决方案
- cmd取UTF-8编码的数据显示乱码
- Jmail组件发送utf-8编码的邮件,在foxmail等客户端显示为乱码的解决方式
- UTF-8编码主页调用JS显示乱码问题解决办法
- MYSQL与PHP链接,前台显示编码正常,后台乱码
- php从mysql获取的数据显示成乱码
- SecureCRT在Linux下vim显示utf-8编码的文件乱码
- java;jsp;tomcat;mysql;hibernate;j2ee 编码中文乱码完美彻底全面解决方案
- mysql写入数据库后,数据出现乱码问题的解决方案
- Windows编码相关知识 & VC与MySQL交互数据乱码问题
- 在windows cmd下执行mysql显示乱码解决方案
- 解决:SecureCRT在Linux下vim显示utf-8编码的文件乱码