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的配置,尝试重启服务器,如果启动不了,就改回去