pymysql.err.InternalError: (1366, “Incorrect string value: ‘\\xF0\\x9F\\x8E\\xB5\\xE9\\x9F...‘

重要一定不要在navcat中设置字符集

要在cmd中设置字符集

pymysql.err.InternalError: (1366, “Incorrect string value: ‘\\xF0\\x9F\\x8E\\xB5\\xE9\\x9F...‘_第1张图片

pymysql.err.InternalError: (1366, “Incorrect string value: ‘\\xF0\\x9F\\x8E\\xB5\\xE9\\x9F...‘_第2张图片 

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| and                |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

mysql> USE and;
Database changed

mysql> alter table users_articletables convert to character set utf8mb4;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

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'},

pymysql.err.InternalError: (1366, “Incorrect string value: ‘\\xF0\\x9F\\x8E\\xB5\\xE9\\x9F...‘_第3张图片

修改完成后,插入正常。

补充

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

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

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

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

-----------------------------------------------华丽丽的分割线----------------------------------------------------- 

pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x8E\\xB5\\xE9\\x9F...'
成都—大数据开发工程师—杨洋
于 2020-04-28 14:38:04 发布
阅读量3.4k
收藏 5
点赞数 5
文章标签: 数据库 mysql navicat
版权
错误事件:

在使用mysql数据库插入数据时,再遇到表情符号的时候,会报错。
在这里插入图片描述
原因是因为我在navicat建立数据库的时候使用的utf8字符集
在这里插入图片描述
所以表结构在创建的时候也会默认为utf8字符集。

所以需要特殊的表情符号时,无法存入数据库。
解决办法

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

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

使用命令行: altor table 表名 convert to character set utfmb4;
在这里插入图片描述
修改完成后,插入正常。
在这里插入图片描述
补充

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

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

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

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/weixin_43870646/article/details/105812872

你可能感兴趣的:(已解决,mysql)