原因: MySQL里 utf8 编码最多支持3个字节, 表情却需要4个字节, 所以报错, 而 utf8mb4 编码最多支持4个字节, 所以改成 utf8mb4 后即可
解决:
1. 修改 mysql 数据库字段编码为 utf8mb4
alter table table_name modify column content longtext character set utf8mb4; // alter table 表名 modify column 存储表情的字段名 字段类型 character set utf8mb4;
2. settings.py , 添加配置 'OPTIONS': {'charset':'utf8mb4'}
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'database_name', 'USER': 'user', 'PASSWORD': 'pwd', 'HOST': '127.0.0.1', 'PORT': '3306', 'OPTIONS': {'charset':'utf8mb4'}, } }