原因

  • 前提: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在cmd执行insert无法插入中文、中文显示乱码
​ --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的。

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

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

    ​ 暂停mysql服务

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

    ​ 保存文件退出

    ​ 重启mysql服务

相关文章:

  • 2021-07-18
  • 2021-12-08
  • 2021-08-18
  • 2021-12-24
  • 2022-02-02
  • 2021-09-16
猜你喜欢
  • 2022-12-23
  • 2021-12-05
  • 2021-09-29
  • 2022-12-23
  • 2021-07-09
  • 2021-09-14
  • 2022-01-01
相关资源
相似解决方案