在 django + mysql 中输入表情符号失败,即使 utf8mb4_unicode_ci

Entering emoji fails in django + mysql even with utf8mb4_unicode_ci

我正在尝试将表情符号插入到我的 django + MySQL 应用程序的 title 列中。我已经进入 PhpMyAdmin 并执行了以下操作:

但是当我在 django 管理中打开这个对象时,表情符号不见了:

如果我尝试输入表情符号并保存,则会出现此异常:

MySQLdb._exceptions.OperationalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x92\\xA9' for column 'title' at row 1")

我错过了什么?

缺少 mysql 数据库的 charset 选项

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        ...
        'OPTIONS': {
            ...
            'charset': 'utf8mb4',
        },
    }
}