在django做QQ登录中:Error 1366: Incorrect string value: '\xF0\x9F\x91\xBD\xF0\x9F...' for column 'content'

在做第三方登录时,

我一个QQ昵称带表情包,三方登录就报 (1366,"Incorrect string value: '\\xF0\\x9F\\x91\\x89 \\xE5...' for column 'first_name' at row 1"),

另一个QQ存汉字,就能正常登录

可能的原因:

  • 第一:检查以下你的编辑器的编码是否设置为UTF-8;这是最容易忽略的原因之一。
  • 第二:检查以下你数据库的varchar/char等相关字段是否已经设置为utf8

1、如果用的是navicat,需要检查两个地方;

 

 

 

2、是否都已经设置:

 

实在不行就将utf8改成utf8mb4

Google说MySQL的utf8不是真正的UTF8,只能包含三个字节的unicode,4个字节就会报错。要解决此总是需要使用utf8mb4 这个编码。可是我把表和column的CHARSET都改成utf8mb4 后仍无法存入Emoji字符。

3、那就要修改Django数据库配置的字符集

 

 

所以,建议大家以后在设计表时 default character set 最好设置为utf8mb4,因为现在Emoji字符已经很流行了,用户难免会在浏览器里输入Emoji字符。

相关文章

注:所有源代码均实测运行过。所有源代码均已上传CSDN,请有...
继承APIView和ViewSetMixin;作用也与APIView基本类似,提供...
一、Django介绍Python下有许多款不同的 Web 框架。Django是重...
本文从nginx快速掌握到使用,gunicorn快速掌握到使用,实现小...
uniapp微信小程序订阅消息发送服务通知
Django终端打印SQL语句 1 Setting配置: 2 默认python 使用的...