Ввод эмодзи в django + mysql завершается неудачно даже с utf8mb4_unicode_ci - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь вставить эмодзи в столбец title в моем приложении django + MySQL.Я уже зашел в PhpMyAdmin и сделал следующее:

  • изменил кодировку столбца на utf8mb4_unicode_ci enter image description here
  • вставил эмодзи enter image description here

Но когда я открываю этот объект в админке django, смайликов не хватает: enter image description here

И если япопробуйте ввести эмодзи и сохранить, я получаю следующее исключение:

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

Что мне не хватает?

1 Ответ

0 голосов
/ 20 февраля 2019

Отсутствует опция charset для базы данных mysql

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