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

Django tegnsæt og kodning

Indstil charset mulighed for at utf8mb4 i OPTIONS dict af DATABASES indstilling i Django-indstillingsfilen:

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

Disse muligheder vil blive videregivet som argumenter til mysql driverforbindelsesfunktionen, som typisk er mysqlclient . Her kan du i dokumentationen se alle disse parametre:

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

Hvis du bruger en anden driver for mysql kan du dog have brug for en anden mulighed.

Sørg også for, at i MySQL-databasen er tegnsættet for enten kolonnen, tabellen eller hele databasen sat til utf8mb4 . For mere info om tegnsæt i MySQL se:

MySQL docs:Specificering af tegnsæt og sorteringer
MySQL-dokumenter:utf8mb4-tegnsættet (4-Byte UTF-8 Unicode-kodning)
Stack Overflow:Hvad er forskellen mellem utf8mb4 og utf8 tegnsæt i MySQL?

Der BTW en løbende pull-anmodning i Django for at lave utf8mb4 standarden:https://github.com/django/django/pull/8886



  1. Byg postgres docker-container med indledende skema

  2. Simpel MySQL-opdateringsrangering med bånd

  3. Giver mening om Postgres rækkestørrelser

  4. Left Outer Join returnerer ikke alle rækker fra mit venstre bord?