Недавно в процессе использования платформы эксплуатации и обслуживания, когда я обнаружил, что представленный оператор SQL содержит выражение, часть данных будет потеряна, когда они будут сохранены в базе данных. Например, исходное предложение - «обновить set c = 'aaa emoji expression \ n \ n ~ выражение emoji "\ n \ n'", после входа в библиотеку он становится "update aaaa emoji". Позже эта проблема была решена с помощью набора символов utf8mb4. Django использует набор символов utf8mb4 и выполняет следующую конфигурацию:
Конфигурация базы данных следующая:
[клиент] набор-символов по умолчанию = utf8mb4 [mysql] набор символов по умолчанию = utf8mb4 [mysqld] набор символов-клиент-рукопожатие = ЛОЖЬ набор символов-сервер = utf8mb4 сервер-сопоставления = utf8mb4_unicode_ci
2. конфигурация django
DATABASES = { 'default': { ... 'OPTIONS': {'charset': 'utf8mb4'}, }, }