关于cmd窗口编码显示编码与实际情况相比对 utf-8编码方式(Mysql)

前言

由于在使用mysql创建数据库,添加表,以及增加表数据时出现的问题

使用的命令

show databases;

create databases student;

use student;

alter table student add address varchar(20);

insert into student values
(20190201,'张勇','男',1998,'计算机科学系','四川省成都市'),
(20190301,'张涛','男',1997,'计算机科学系','四川省成都市'),
(20190401,'张小天','女',1999,'计算机科学系','四川省成都市'),
(20190402,'陈丽','女',1999,'计算机科学系','四川省成都市'),
(20190502,'李欣','男',2000,'计算机科学系','四川省成都市'),
(20190203,'张雯雯','女',2000,'计算机科学系','四川省成都市');

select * from student;

mysql 默认使用的是utf-8编码方式

cmd命令窗口默认GBK简体中文编码

由于编码不统一的问题导致

 显示的结果

方案一 

正确的解决方案是 进入 mysql目录将配置文件重新修改成 GBK2312

关于 GBK

关于GBK编码 编码

这就是修改成它的原因啦

方案二

我们一般不走寻常路,看一看有没有解决方案(因为utf-8也包括中文编码

CMD窗口可以修改输入的编码方式  yyds

找到这条命令chcp 命令(修改编码默认是936,当然这样的效果只是存在于当前的cmd窗口,不是全局设置

我们cmd窗口输入 chcp 65001 修改 编码

好了为了方便我们讲cmd控制台窗口的  输出历史记录导出 到文件

doskey/HISTORY > e:\cmd历史记录.txt  (普通cmd窗口并没有管理员权限,所以导出到e盘方便我们查看文件内容)

惊奇的发现这样并不能导出在mysql输入的命令

 所以我又找到了mysql输出命令

mysql> tee e:\数据库历史命令.txt (注意是进入mysql时使用的命令,所以测试前先输入它)

提示     就成功了
Logging to file 'e:\数据库历史命令.txt '

使用cmd窗口UTP-8 编码方式 执行命令观察   过程

进入cmd时修改chcp

 登录数据库

并执行tee e:\数据库历史命令.txt

等等又出错了

提示         错误1300 (HY000):无效的utf8字符串:bი外

然后我  方向上键  再次输入相同的命令     它又显示成功了 这这这---------看来是瞎搞的问题吧

看来已经埋下了果子了  

我们继续

 忘记 记录命令了(看到了吗?有因有果,直接解析成ppppp了

 先不管它 输入

select * from student; 查看表记录

这里就对应刚刚重复输入相同命令的结果了    (蓝色标记

第二次输入相同的值(中文)却被解析  的结果却成了不一样的编码 ??????

暂且保留问题我们继续

 (把文件另存为utf-8编码方式)查看结果

 没啥变化

 我们尝试删除它时  显示是被守护进程了(说明没有其他问题)

结论:窗口输入的信息没有问题,解析过程出来问题  查询表的记录时 

总结   使用cmd窗口不同编码方式 执行命令观察   过程

最终结论

不同编码方式的结果确实不同,但改变编码方式的是没有效果的    -----真遗憾

记录这个过程

参考链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Heart_to_Yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值