Ustaw charset
opcja utf8mb4
w OPTIONS
dykt DATABASES
ustawienie w pliku ustawień Django:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'my_db',
'USER': 'my_user',
'PASSWORD': 'my_pass',
'HOST': 'my.host',
'OPTIONS': {
'charset': 'utf8mb4' # This is the important line
}
}
}
Te opcje zostaną przekazane jako argumenty do funkcji połączenia sterownika mysql, którą zazwyczaj jest mysqlclient
. Tutaj możesz zobaczyć w dokumentacji wszystkie te parametry:
https://mysqlclient.readthedocs.io/user_guide.html#functions-and -atrybuty
Jeśli używasz innego sterownika w przypadku mysql możesz potrzebować innej opcji.
Upewnij się również, że w bazie danych MySQL zestaw znaków kolumny, tabeli lub całej bazy danych jest ustawiony na utf8mb4
. Aby uzyskać więcej informacji o zestawach znaków w MySQL zobacz:
Dokumentacja MySQL:Określanie zestawów znaków i ich sortowania
Dokumentacja MySQL:Zestaw znaków utf8mb4 (4-bajtowe kodowanie Unicode UTF-8)
Przepełnienie stosu:Jaka jest różnica między zestawami znaków utf8mb4 i utf8 w MySQL?
W Django istnieje ciągłe żądanie ściągnięcia, aby utworzyć utf8mb4
wartość domyślna:https://github.com/django/django/pull/8886