django插入数据库报错 1366, "Incorrect string value: '\\xF0\\x9F\\x9A\\xA8

 报错: 1366, "Incorrect string value: '\\xF0\\x9F\\x9A\\xA8

 

是因为mysql不能识别4个字节的utf8编码的字符,抛出了异常,这应该也是问题的根源。☺、��、类似于这种4个字节,将对应字符类型换成将对应的数据类型改为utf8mb4类型,同时连接类型也要改成utf8mb4_general_ci.

 

解决办法
注意:直接在navicat中修改表结构的字符集和数据库的字符集都不能生效 (至少我的不行)

通过cmd进入mysql,找到表结构,修改表结构字符集为utf8mb4

使用命令行: alter table 表名 convert to character set utf8mb4;

 

再添加djanog连接串属性:

'OPTIONS': {'charset': 'utf8mb4'},

 

 

修改完成后,插入正常。

 

补充

1、有资料说进入my.ini修改mysql配置,实测无效

2、强调一遍,不要偷懒直接用可视化工具修改

3、如果改了mysql的配置,尝试重启服务器,如果启动不了,就改回去

 

 

 

 

 

 

参考: (10条消息) pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x8E\\xB5\\xE9\\x9F...'_成都—大数据开发工程师—杨洋的博客-CSDN博客

 

posted @ 2022-08-18 09:44  fengzao  阅读(1830)  评论(0编辑  收藏  举报