MySQL在cmd执行insert无法插入中文、中文显示乱码

原因
  • 前提:MySQL在安装时选择编码为utf8,数据库、表创建时的编码也是utf8,但在cmd下无法输入中文。
  • 根本原因:客户端、服务器、数据库/表的编码不一致。
  • 即:cmd写入显示的字符编码是gbk,与MySQL 的配置不一致。
关于修改cmd字符编码为utf8

​ 由于中文操作系统的cmd默认编码是gbk,网络上很多建议把cmd编码设置为utf8,即用chcp命令改为65001(utf8字符编码) ,可这样修改之后根本无法输入中文,在执行inset into…命令时mysql直接退出。

思路

所以既然修改cmd的编码行不通,我们:

  • 要么在cmd里告诉mysql我们的cmd客户端输入的编码是gbk,然后能接收的编码也是gbk即可。
  • 要么修改MySQL配置文件,把client的编码配置修改为何cmd一致的gbk
解决方案
临时解决方案
  • **set names gbk;**相当于是告诉mysql服务器软件,我们在当前命令行下输入的内容是GBK编码。当命令窗口关闭后,它再输入中文就会出现问题

在这里插入图片描述
​ --MySQL 5.1参考手册

  • set character_set_client=gbk;set character_set_results=gbk;

其实,只要保证cmd客户端和MySQL两者编码一致即可。但现实是cmd默认的是gbk,而mySQL一般是utf8。所以我们需要在cmd中告诉MySQL:

——cmd这边发送给MySQL的是gbk的。

——cdm这边接受的数据要求是gbk的。

在这里插入图片描述

永久解决办法
  • 修改my.ini配置

    ​ 暂停mysql服务

    ​ MySQL配置文件:C:\Program Files\MySQL\MySQL Server 5.5\my.ini,修改client配置的编码为gbk。

    ​ 保存文件退出

    ​ 重启mysql服务

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值