Windows命令行下MySQL客户端中文乱码问题解决

版本:

主机系统使用win10,mysql是5.7.4版本;

现象:

win10系统,用命令行学习mysql时,想要在表中存入一条含有中文字符的记录,会报出如下错误:

解决方法:

步骤1:修改mysql配置文件my.ini文件;将#default-character-set修改为default-character-set=utf8,将#character-set-server修改为character-set-server=utf8,这里设置了创建新表时默认使用的字符集,以及客户端的字符集;

步骤2:重启mysql服务;我电脑设置的是自动启动mysql服务,只需要重启电脑即可;也可以在右键此电脑->管理,进入计算机管理的服务和应用程序里,找到mysql57服务,手动重启;

重启后可访问mysql字符集设置,如下:

步骤3:修改win10操作系统的字符集;控制面板->时钟和区域->区域->管理->更改系统区域设置(C)->勾选“使用Unicode UTF-8提供全球语言支持(U)”,然后重启电脑;

步骤4:验证是否已将操作系统字符集修改为UTF8;打开命令行,在标题行右键查看命令行属性,当前代码页显示65001(UTF-8),即为成功;(否则默认应该是GBK字符集,如果已经是UFT-8,则无需进行步骤3)

步骤5:再次插入含中文记录,则显示成功!

问题分析与疑问:

1.对于创建好的数据库和表,已经指定了字符集后,character_set_database并不是utf8格式时,即使设置了mysql.ini文件,对已经创建的数据库和表不起作用,使用set character_set_database=utf8;命令修改数据库的字符集后,仍然不能对已经创建好的数据库、表起作用,只能删除数据库、表重新创建;

2.操作系统命令行的编码字符集在其中起到的作用,假设不修改win10系统默认字符集,使用gbk编码,而将mysql编码的某些项或者全部项修改为gbk,是否能起到同样的作用?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值