本文主要是介绍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 表的名称;
这篇关于MySQL||错误代码: 1366Incorrect string value: ‘\xE5\xBC\xA0\xE5\xB0\x8F...‘ for column ‘stuname‘ at row 1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!