MySQL||错误代码: 1366Incorrect string value: ‘\xE5\xBC\xA0\xE5\xB0\x8F...‘ for column ‘stuname‘ at row 1

一、背景

        往数据库students中表stuinfo添加数据时报错,报错结果如图所示。


二、查找原因

         1、查看MySQL字符集的编码方式,使用代码:SHOW VARIABLES LIKE '%char%';
               
结果为:

        2、查看当前数据库字符集的编码方式,使用代码:SHOW CREATE DATABASE students; 其中students为当前数据库的名称,结果如下:

        3、查看所使用表字符集的编码方式,使用代码:SHOW CREATE TABLE stuinfo; 其中stuinfo为所使用表的名称,结果如下:

         对比以上结果可知,出错原因在:stuinfo 表中stuname、gender字段的编码方式为latin1,与数据库和表的编码方式utf8不同。


三、解决方法

        解决方式为修改字段stuname、gender的编码方式同表和数据库一致,都为utf8。

        先查看表stuinfo的结构设置,使用代码:DESC stuinfo; 结果如下:
           

         将stuname、gender的编码方式修改为utf8,字段的数据类型需与表中一致,代码如下:

ALTER TABLE stuinfo CHANGE stuname stuname VARCHAR(20) CHARACTER SET utf8;
ALTER TABLE stuinfo CHANGE gender gender VARCHAR(20) CHARACTER SET utf8;

        再次插入数据,运行成功!!!


四、总结

  •  查看mysql的字符集:SHOW VARIABLES LIKE '%char%';
  • 查看当前数据库字符集的编码方式:SHOW CREATE DATABASE 当前数据库名称; 
  • 查看所使用表字符集的编码方式:SHOW CREATE TABLE 表的名称;
  • 查看表的结构:DESC 表的名称;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值