Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Conjunto de caracteres e codificação do Django


Defina o charset opção para utf8mb4 nas OPTIONS dict dos DATABASES configuração no arquivo de configurações do 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
        }
    }
}

Essas opções serão passadas como argumentos para a função de conexão do driver mysql, que normalmente é mysqlclient . Aqui você pode ver na documentação todos esses parâmetros:

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

Se você usar um driver diferente para mysql, porém, você pode precisar de uma opção diferente.

Certifique-se também de que no banco de dados MySQL, o conjunto de caracteres da coluna, da tabela ou de todo o banco de dados esteja definido como utf8mb4 . Para obter mais informações sobre conjuntos de caracteres no MySQL, consulte:

Documentos do MySQL:Especificando conjuntos de caracteres e agrupamentos
Documentos do MySQL:O conjunto de caracteres utf8mb4 (Codificação Unicode UTF-8 de 4 bytes)
Stack Overflow:Qual ​​é a diferença entre os conjuntos de caracteres utf8mb4 e utf8 no MySQL?

BTW um pull-request em andamento no Django para fazer utf8mb4 o padrão:https://github.com/django/django/pull/8886