Set the charset
选项utf8mb4
in the OPTIONS
的字典DATABASES
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 relevant line
}
}
}
这些选项将作为参数传递给 mysql 驱动程序连接函数,通常是mysqlclient
。您可以在文档中看到所有这些参数:
https://mysqlclient.readthedocs.io/user_guide.html#functions-and-attributes
如果您使用不同的司机但对于 mysql,您可能需要不同的选项。
还要确保在 MySQL 数据库中,列、表或整个数据库的字符集设置为utf8mb4
。有关 MySQL 中字符集的更多信息,请参阅:
MySQL 文档:指定字符集和排序规则
MySQL 文档:utf8mb4 字符集(4 字节 UTF-8 Unicode 编码)
堆栈溢出:MySQL 中 utf8mb4 和 utf8 字符集有什么区别?
顺便说一句,Django 中有一个正在进行的拉取请求utf8mb4
默认值:https://github.com/django/django/pull/8886