Mysql
 sql >> Database >  >> RDS >> Mysql

Set di caratteri e codifica Django

Imposta il charset opzione per utf8mb4 nelle OPTIONS dict delle DATABASES impostazione nel file delle impostazioni di 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
        }
    }
}

Queste opzioni verranno passate come argomenti alla funzione di connessione del driver mysql, che in genere è mysqlclient . Qui puoi vedere nella documentazione tutti questi parametri:

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

Se utilizzi un diverso driver per mysql, tuttavia, potresti aver bisogno di un'opzione diversa.

Assicurati inoltre che nel database MySQL, il charset della colonna, della tabella o dell'intero database sia impostato su utf8mb4 . Per ulteriori informazioni sui set di caratteri in MySQL, vedere:

Documenti MySQL:Specifica di set di caratteri e regole di confronto
Documenti MySQL:Il set di caratteri utf8mb4 (codifica Unicode UTF-8 a 4 byte)
Stack Overflow:Qual ​​è la differenza tra i set di caratteri utf8mb4 e utf8 in MySQL?

C'è tra l'altro una richiesta pull in corso in Django per fare utf8mb4 l'impostazione predefinita:https://github.com/django/django/pull/8886