MySql插入值时报Incorrect string value: 错

Mysql新建表,插入中文时报错“Incorrect string value: '\xE4\xBD\xA0\xE5\xA5\xBD' for column”问题


感谢 胡欣欣 分享
原文地址: https://www.cnblogs.com/wangjikun/p/5687370.html
有时候我们在往数据库中输入信息时,如果输入的内容是中文,会报错“Incorrect string value: ‘\xE4\xBD\xA0\xE5\xA5\xBD’ for column”

例如:

CREATE TABLE test(ID INT PRIMARY KEY AUTO_INCREMENT

, test_name VARCHAR(20) , test_num INT); /建立一个表/

insert into test(test_name) values(‘你好’); /建表之后插入一条带有中文的数据/

在这里插入图片描述
解决的方法:

1、在建立表时设置默认字符串编码方式为utf8

CREATE TABLE test2(ID INT PRIMARY KEY AUTO_INCREMENT

, test_name VARCHAR(20) , test_num INT)default charset = utf8; /建立一个表,加上“default charset = utf8”,设置默认字符串编码方式为utf8。/

insert into test2(test_name) values(‘你好’); /建表之后插入一条带有中文的数据/

这次就可以成功添加

在这里插入图片描述

2、已经添加的表,需要设置一下:ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

ALTER TABLE test CONVERT TO

CHARACTER SET utf8 COLLATE utf8_unicode_ci; /例如刚刚建立的test表,插入中文时会报错,现在对其进行设置/

insert into test(test_name) values(‘你好’); /设置之后插入一条带有中文的数据/

在这里插入图片描述

3、直接修改数据库的字符串编码属性:ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci

ALTER DATABASE testdb CHARACTER

SET utf8 COLLATE utf8_unicode_ci; /修改数据库testdb的编码方式/

CREATE TABLE testdb.test3(ID INT PRIMARY KEY AUTO_INCREMENT

, test_name VARCHAR(20) , test_num INT)default charset = utf8; /建立一个表,加上“default charset = utf8”,设置默认字符串编码方式为utf8。/

insert into testdb.test3(test_name) values(‘你好’); /建表之后插入一条带有中文的数据/

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值