windows 命令提示行下 SQL 无法插入中文字符

windows 命令提示行下 SQL 无法插入中文字符问题

亲测有效!!!!

在这里插入图片描述

场景

使用SQL语句插入中文字符时,无法插入中文字符;
或根据其他博文,已经修改了编码为utf-8 甚至 utf-8mb4,仍然报错;
cmd提示:incorrect string value

解决方案:set names utf-8;

(Windows10这句话原样复制不要有任何改动!!原因下述)

具体思路:解决编码问题

1. mysql server 中有哪些编码

mysql指定编码的变量是否需要更改具体作用
character_set_client可能用到设置客户端使用的字符集
character_set_connection可能用到设置连接数据库时的字符集
character_set_database常用设置默认创建数据库的编码格式
character_set_results可能用到数据库给客户端返回时使用的编码格式
character_set_filesystem一般不用文件系统的编码格式,把操作系统上的文件名转化成此字符集,即把 character_set_client转换character_set_filesystem, 默认binary是不做任何转换的。
character_set_server不要修改服务器安装时指定的默认编码格式
character_set_system不要修改数据库系统使用的编码格式,为存储系统元数据的编码格式
character_sets_dir不要修改字符集安装的目录

2.该改哪些编码?

要保证编码正常输入输出,需保证上述4个黄色变量编码格式一致,且与你的程序的默认编码一致。
仅更改database的默认编码,其作用仅仅是告诉 mysql server,在收到客户端发来的语句后, mysql server内部操作应当使用何种字符 (但并没有正确配置 接收(client、connection) 和输出(result)应使用的字符)

3. 改成什么编码?
上述4个黄色变量编码格式一致,且与你的程序的默认编码一致。(win10 默认gbk而不是utf-8);

4. 怎么修改?
使用 set names。(set names utf-8 ; )(set names gbk;)

set names 不是指“更改 names 这一列的属性”,而是对mysql server 的一种配置更改动作,相当于便捷操作直接一键更改三个变量(character_set_client 、 character_set_connection 、 character_set_results );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值