错误代码: 1366 Incorrect string value: ‘\xE6\x9D\x8E\xE5\x9B\x9B‘ for column ‘name‘ at row 1

1.原因:字符集的原因。比如你要往一个表中添加数据,这个表的字符集是Latin,而当你插入字段的值为中文时就会报该错误。
2.代码展示:(旁边小伙伴遇到的错误)。他在装数据库时没有指定默认字符集为utf-8,默认是latin.在他添加数据时就发生了该错误.
报错代码: insert into from(ID,name,price,stock,insert_time)values(91,‘李四’,2332.32,4,‘2020-10-10’).
查看表的结构: show create table 表名;该语句执行后我们看到的结果是:CREATE TABLE from (
ID INT(11) DEFAULT NULL,
name VARCHAR(32) DEFAULT NULL,
price DOUBLE DEFAULT NULL,
stock INT(11) DEFAULT NULL,
insert_time DATE DEFAULT NULL
) ENGINE=INNODB DEFAULT CHARSET=latin1.
我们可以看到默认字符串为latin1,这里我们需要将表的字符集改为utf-8(语句为:ALTER TABLE from CHARACTER SET utf8; ).这个操作完之后,我们在查看建表语句时发现字段name处多了一个信息:
CREATE TABLE from (
ID INT(11) DEFAULT NULL,
name VARCHAR(32) CHARACTER SET latin1 DEFAULT NULL,
price DOUBLE DEFAULT NULL,
stock INT(11) DEFAULT NULL,
insert_time DATE DEFAULT NULL
) ENGINE=INNODB DEFAULT CHARSET=utf8.发现name字段多了CHARACTER SET latin1这个约束.
其实这就是原因所在.我们传入的name为"李四",可是latin1字符集无法识别,所以就乱码生成了:’\xE6\x9D\x8E\xE5\x9B\x9B.

解决方法:
步骤1: 去mysql安装目录下找到my.ini文件,找到default-character-set的值为utf8. 即default-character-set=utf8;继续找到character-set-server配置,将值设为utf8.即character-set-server=utf8.(在这一步,可能会遇到没有权限修改文件的问题,解决方法见最底部)
步骤2 : 右击此电脑,有个管理选项,点击进入.进入之后界面如下:
在这里插入图片描述
找到mysql服务,将其重新启动.

**步骤3:**新建一个库,在新的库里重新创建表即可,就可以看到默认字符集为utf8.此时问题解决.

没权限修改配置文件的问题解决方法:

  1. 回到my.ini文件的上级目录,并右击,会看到一个"授予访问权限"的菜单项,点击它进入"高级共享",进入到安全模块,再点击编辑.界面如下: 在这里插入图片描述

  2. 点击编辑之后界面如下:在这里插入图片描述
    我们会发现有些登录用户是没有修改权限的,这时将"完全控制"选项勾选上就ok了.随意操作,只要保证有修改权限就行.

…我们要善待错误,遇到错误不要烦躁.错误需要解决,一个错误,一分成长.上面解决方案希望对大家有用

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值