В наше время emoji в веб-приложениях — не роскошь, а суровая реальность: любой «мобильный юзер» может написать сообщение, в котором есть эти символы.
И, казалось бы, фича уже не новая — всё должно быть готово для неё. Так и есть в SQLite, PostgreSQL. Но не в MySQL/MariaDB.
Однако, шаманств не много — просто используем кодировку utf8mb4, которая есть в MySQL с 5.5 версии.
ALTER TABLE табличка CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
И прописываем charset в параметрах коннекта к базе:
DATABASES = { 'default': { 'ENGINE': 'django.contrib.gis.db.backends.mysql', 'NAME': 'бд', 'USER': 'юзер', 'PASSWORD': 'пароль', 'HOST': '127.0.0.1', 'OPTIONS': {'charset': 'utf8mb4'}, }, }
✅ Добавлена поддержка emoji.