关于MySQL插入数据里有中文字符出现Incorrect string value的错误的解决方法

今天,在向MySQL表格中插入数据时,数据里有中文字符,出现Incorrect String Value 错误。
                                                                    
背景:CMD里直接敲代码插入数据
 
提示的部分截取为:ERROR 1366 (HY000): Incorrect string value
 
百度了一下,说是编码问题,show variables like 'character%' 查看后,发现所有编码都为UTF8,并没有错
 
继续查原因,网上有人说是 mysql的编码集的问题以下为原文:
 
【"原来问题出在mysql上,mysql如果设置编码集为utf8那么它最多只能支持到3个字节的UTF-8编码,而4个字节的UTF-8字符还是存在的,这样一来如果你建表的时候用的utf8字符集出异常就理所当然了。 】
 
解决方法很简单,修改字段或者表的字符集为utf8mb4。比较蛋疼的是,字符集utf8mb4在mysql 5.5.3之后才支持。。。"
 
看他说的这些结果要升级才能修改,果断放弃,并且也感觉应该不是我遇到的问题。后来想了想,是不是在CMD里输入文字的编码的问题呢,试着先设置客户端命令的编码,再插入果然正确!然后百度搜索客户端编码相关的问题也发现有和我出现过同样问题的。
 
【解决方法】 :
 
set names gbk    //【设置客户端的编码格式,也就是你敲入的是什么编码的,客户端会自动把你的命令转成UTF8,也就是 数据库编码也还是UTF8】
 
或者在安装目录下找到 my.ini
 
把default-character-set=utf8 改成default-character-set=gbk;


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值