cmd mysql utf8_MySQL中UTF8编码的数据在cmd下乱码
花了一下午,解决MySQL在Windows的cmd下中文乱码的问题。
mysql> use abc;
Database changed
mysql> select * from school;
+----------+--------------------+-------------------------------------------+
| schoolid | name | address |
+----------+--------------------+-------------------------------------------+
| 1 | 鍖椾含澶у | 鍖椾含甯備腑鍏虫潙鍖楀ぇ琛?7鍙?
| 2 | 娓呭崕澶у | 鍖椾含甯傛捣娣€鍖轰腑鍏虫潙澶ц
| 3 | 鍗椾含澶у | 姹熻嫃鐪佸崡浜競榧撴ゼ鍖烘眽鍙h矾22鍙?
| 4 | 涓浗浜烘皯澶у | 鍖椾含甯傛捣娣€鍖轰腑鍏虫潙澶ц59鍙?
| 5 | 鍘﹂棬澶у | 绂忓缓鐪佸帵闂ㄥ競鎬濇槑鍗楄矾422鍙?
+----------+--------------------+-------------------------------------------+
5 rows in set (0.00 sec)
数据是通过SQL文件导入的,这个SQL文件也是UTF8编码的:
数据库、表都重建了,数据文件也保证是UTF8了,但cmd窗口中还是乱码。。。伤心。。。
首先,安装MySQL的时候,我很清楚的记得我设置的编码为UTF8,所以在my.ini文件中:
# ...
[mysql]
default-character-set=utf8
# ...
[mysqld]
# ...
character-set-server=utf8
然后再mysql中验证:
mysql> show variables like '%character%';
+--------------------------+------------------------------------
| Variable_name | Value
+--------------------------+------------------------------------
| character_set_client | utf8
| character_set_connection | utf8
| character_set_database | utf8
| character_set_filesystem | binary
| character_set_results | utf8
| character_set_server | utf8
| character_set_system | utf8
| character_sets_dir | C:\Program Files (x86)\MySQL\MySQL
+--------------------------+------------------------------------
8 rows in set (0.00 sec)
全部都是utf8编码。接下来验证数据库的默认编码:
mysql> show create database abc;
+----------+--------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------+
| abc | CREATE DATABASE `abc` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+--------------------------------------------------------------+
1 row in set (0.00 sec)
可以看到,数据库的默认编码是utf8。再来验证数据表的默认编码:
mysql> show create table school;
+--------+--------------------------------------------+
| Table | Create Table |
+--------+--------------------------------------------+
| school | CREATE TABLE `school` (
`schoolid` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) NOT NULL,
`address` varchar(200) NOT NULL,
`phone` varchar(11) NOT NULL,
`master` varchar(10) NOT NULL,
PRIMARY KEY (`schoolid`),
UNIQUE KEY `master_UNIQUE` (`phone`),
UNIQUE KEY `address_UNIQUE` (`address`),
UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 |
+--------+--------------------------------------------+
可以看到,表的编码依然为utf8,那么为什么还是会乱码呢??百度谷歌都找遍了,还是乱码,然并卵。郁闷半天,无意中在一个网页上看到有人说“这是因为Windows的cmd默认编码是GBK,MySQL里面为UTF8,自然就乱码了,改用工具试试”,这才一语惊醒梦中人,于是使用工具查询数据库,结果是这样滴:
这才发现其实MySQL早就按照我设置的UTF编码存储数据了。我晕,竟然被cmd的外表蒙骗了。。。。。。那么,有没有办法设置让cmd也正确显示UTF8的编码呢??又去百度了。。。结果是:还真有!
在cmd中登录mysql后,在输入sql语句前,先设置编码:set names gbk;
mysql> set names gbk;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from school;
+----------+--------------+------------------------------+-
| schoolid | name | address |
+----------+--------------+------------------------------+-
| 1 | 北京大学 | 北京市中关村北大街47号
| 2 | 清华大学 | 北京市海淀区中关村大街
| 3 | 南京大学 | 江苏省南京市鼓楼区汉口路2
| 4 | 中国人民大学 | 北京市海淀区中关村大街
| 5 | 厦门大学 | 福建省厦门市思明南路422号
+----------+--------------+------------------------------+-
5 rows in set (0.00 sec)
那么,为什么这样设置后,就能正确显示以UTF8存储的数据了呢?
mysql> show variables like '%character%';
+--------------------------+-----------------------------------
| Variable_name | Value
+--------------------------+-----------------------------------
| character_set_client | gbk
| character_set_connection | gbk
| character_set_database | utf8
| character_set_filesystem | binary
| character_set_results | gbk
| character_set_server | utf8
| character_set_system | utf8
| character_sets_dir | C:\Program Files (x86)\MySQL\MySQL
+--------------------------+-----------------------------------
8 rows in set (0.00 sec)
可以看到,client,connection和result的编码已经设置为gbk了,但server,database,filesystem的编码还是utf8!这就是说,虽然数据依然是使用utf8编码存储的,但是客户端以及返回的结果集是gbk的,而此时cmd窗口的编码正好是gbk,因此该结果集能正确显示了。
搞了半天,结果是这样。。。但这样也好,毕竟让我印象深刻了,应该不会有下次了。
完。
cmd mysql utf8_MySQL中UTF8编码的数据在cmd下乱码相关推荐
- mysql gbk编码 字节数,mysql中utf-8编码数据库转换成GBK编码的问题
摘要 腾兴网为您分享:mysql中utf-8编码数据库转换成GBK编码的问题,之了课堂,易信,一折包邮,星球联盟等软件知识,以及七日杀,草莓软件,装修施工站,桔子会,桌面切换,看小说神器,酷派应用商店 ...
- 项目部署到服务器后字符编码,将UTF-8编码的数据发布到服务器会丢失某些字符...
将UTF-8编码的数据发布到服务器会丢失某些字符 我正在从事包括服务器(JavaEE应用程序)和客户端(Android应用程序)通信的项目. XML作为HTTP请求的POST参数之一发送(称为&quo ...
- java向mysql写入数据慢_通过java代码往mysql数据库中写入日期相关数据少13个小时...
通过show variables like '%time_zone%'; 查看时区: CST 时区 名为 CST 的时区是一个很混乱的时区,有四种含义: 美国中部时间 Central Standard ...
- 解决utf8编码的php生成csv打开乱码的问题
解决utf8编码的php生成csv打开乱码的问题 参考文章: (1)解决utf8编码的php生成csv打开乱码的问题 (2)https://www.cnblogs.com/Crius/p/115586 ...
- mysql8中文排序_mysql中utf8编码的中文字段按拼音排序
http://blog.s777n.net/orderbychinesefieldutf8/comment-page-2/ 2010-08-24 17:36 by TomorrowMan | 分类: ...
- Java程序向MySql数据库中插入的中文数据变成了问号
找到mysql的安装目录,修改my.ini文件 (1)如何找到my.ini文件 如果my.ini文件不在MySQL的安装目录下,可能放在隐藏目录,要先去找到ProgramData,(这里要先打开显示隐 ...
- 设置mysql为utf-8_如何设置mysql数据库为utf-8编码
满意答案 ddddlyxy 2015.01.27 采纳率:47% 等级:12 已帮助:12169人 方法一: mysql> show variables like '%chara%'; + ...
- python中utf-8编码_Python 使用 UTF-8 编码(转)
一般我喜欢用 utf-8 编码,在 python 怎么使用呢? 1.在 python 源码文件中用 utf-8 文字.一般会报错,如下: File "F:\workspace\psh\src ...
- linux 下URL中 UTF-8编码、GB2312编码与汉字之间的转换
下面是UTF-8编码的转换代码 #include <string.h> #include <stdio.h> #include <stdlib.h>/* 16进制字 ...
最新文章
- 设计模式(一)————策略模式(张三的故事??)
- 负载均衡会话保持技术、原理、产品(以F5为例)
- python oop 实践_Python OOP示例?
- window无法启动windows Firewall
- 在深度学习时代用 HowNet 搞事情 刘知远 01-09
- 波场地址解析易语言代码
- 用计算机画画内容,【经验】怎么用电脑绘画?
- 反虚拟机、反沙箱技术整理汇总
- display:HDCP协议简述
- 怎么卸载quartus_分享一个Quartus工程清理方法
- 这四个想法试图搞定整个互联网的安全
- Java编程公鸡5元一只,母鸡3元一只,小鸡1元三只,问100元怎样可以买100鸡?
- AI应用第一课:C语言支付宝刷脸登录
- 搭建在线网校平台的三个好处
- MinGW+MSYS安装
- Android应用安装流程理解
- 邓号用计算机怎么输入,电脑上顿号怎么打出来
- 洒脱是人生的一种境界
- 17.2.2 裁剪图片
- Deep learning with Python 学习笔记(6)
热门文章
- 【转】【异常处理】Incorrect string value: ‘\xF0\x90\x8D\x83...‘ for column... Emoji表情字符过滤的Java实现
- 如何解决System.Web.HttpRequestValidationException的异常
- System.IO.FileNotFoundException 找不到指定的模块问题解决
- Win10电脑如何找出隐藏的文件
- win11为什么比win10慢 Windows11比Win10慢的解决方法
- 基本数据类型包装类的使用与转换
- mysql 与c_mysql基础:mysql与C结合实例
- 软景php,你不得不知的软景配置标准
- initlistpython_python --(链表)
- JQ实现标签栏切换效果、导航栏下滑效果以及动画队列和stop()方法