Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Django-Zeichensatz und -Codierung

Stellen Sie den charset ein Option zu utf8mb4 in den OPTIONS dict der DATABASES Einstellung in der Django-Einstellungsdatei:

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
        }
    }
}

Diese Optionen werden als Argumente an die mysql-Treiberverbindungsfunktion übergeben, die normalerweise mysqlclient ist . Hier können Sie in der Dokumentation all diese Parameter sehen:

https://mysqlclient.readthedocs.io/user_guide.html#functions-and -Attribute

Wenn Sie einen anderen Treiber verwenden für mysql benötigen Sie jedoch möglicherweise eine andere Option.

Stellen Sie außerdem sicher, dass in der MySQL-Datenbank der Zeichensatz entweder der Spalte, der Tabelle oder der gesamten Datenbank auf utf8mb4 gesetzt ist . Weitere Informationen zu Zeichensätzen in MySQL finden Sie unter:

MySQL-Dokumentation:Festlegen von Zeichensätzen und Sortierungen
MySQL-Dokumentation:Der utf8mb4-Zeichensatz (4-Byte-UTF-8-Unicode-Codierung)
Stapelüberlauf:Was ist der Unterschied zwischen utf8mb4- und utf8-Zeichensätzen in MySQL?

Es gibt übrigens eine laufende Pull-Anfrage in Django, um utf8mb4 zu machen die Standardeinstellung:https://github.com/django/django/pull/8886