美文网首页
解决MYSQL 插入错误error code [1366]; I

解决MYSQL 插入错误error code [1366]; I

作者: 热血大桃子 | 来源:发表于2018-06-22 15:58 被阅读0次

 出现MYSQL 插入错误error code [1366]; Incorrect string value:“\xF3\xB0\x80\x81\xE6\x8C..."的错误通常是由数据字符集编码造成的。可以通过如下代码:

show variables  like '%char%';

查看当前数据库编码。
 一般来说,我们把数据库编码设为utf-8就好了,但是如果遇到4字节unicode则会出现错误,所以为了兼容(比如一些emoj表情符号),通常需要将数据库字符集设置为utf8mb4。可以通过在控制台输入如下代码设置:

set character_set_database=utf8mb4;
set character_set_server =utf8mb4;
set character_set_client =utf8mb4;
set character_set_connection =utf8mb4;
set character_set_results =utf8mb4;

 当然,在创建好表之前做了上面的操作一般都没啥问题了。但是我在写百度百科爬虫的时候遇到了一些问题,就是error code 1366。困扰了我很久,也按上面设置为utf8mb4,还是反复出现这个问题。找了一些资料,发现可以通过如下代码查看表中每个字段的字符编码:

show full columns from table_xxx;

这才发现所有字段的编码都是utf8而不是utf8mb4。原因找到了,通过如下代码改了程序就运行正常了:

alter table_xxx convert to character set utf8mb4;

 问题看似简单,但定位确实要花点儿时间,写下了做备查记录!

相关文章

网友评论

      本文标题:解决MYSQL 插入错误error code [1366]; I

      本文链接:https://www.haomeiwen.com/subject/prbkyftx.html