即使使用utf8mb4_unicode_ci

时间:2019-02-19 22:00:37

标签: mysql django unicode emoji

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

  • 将列的字符集更改为utf8mb4_unicode_ci enter image description here
  • 插入了表情符号 enter image description here

但是当我在django admin中打开此对象时,表情符号丢失了: enter image description here

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

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

我想念什么?

1 个答案:

答案 0 :(得分:0)

缺少的是mysql数据库的charset选项

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