我正在使用utf-8
作为mysql数据库的普通不区分大小写的编码方式,但是django
创建的测试数据库采用了latin排序规则
我已经设置过这个:
TEST_CHARSET="utf8_general_ci"
TEST_COLLATION="utf8_general_ci"
我已经在设置文件中尝试过了,但没有成功。
我还应该做什么?
TEST_CHARSET
和TEST_COLLATION
在Django 1.8版本中被重命名为CHARSET
和COLLATION
并移动到TEST
字典中。
DATABASES = {
...
'TEST': {
'CHARSET': 'utf8',
'COLLATION': 'utf8_general_ci',
}
}
在设置中添加:
DATABASES = {
'default': {
...
'TEST_CHARSET': "utf8",
'TEST_COLLATION': "utf8_general_ci",
}
}
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': <db_name>,
'USER': <user>,
'PASSWORD': <password>,
'HOST': <host>,
'PORT': <port>,
'TEST': {
'NAME': <test_db_name>,
'CHARSET': 'utf8',
'COLLATION': 'utf8_general_ci',
},
},
}
TEST_CHARSET
TEST_COLLATION
DATABASES = {
...
'TEST': {
'CHARSET': 'utf8mb4',
'COLLATION': 'utf8mb4_unicode_ci',
}
}
但是你也需要确保有类似这样的东西,以确保你的测试与适当的字符集与数据库进行通信。
DATABASES = {
...
'OPTIONS': {
'charset': 'utf8mb4'
}
}
syncdb
操作吗? - Jordan