在django项目中添加test测试,出现数据库乱码的现象,报错:
SyncError: (1366, "Incorrect string value: '\\xE9\\x85\\x92\\xE5\\xBA\\x97' for column 'organization' at row 1")
其中organization这个字段加入了中文,导致乱码
问题原因在于test生成的临时数据库默认不是utf8,不支持中文,导致错误。
尝试过修改项目数据库的字符编码,并没有效果,因为test使用的数据库数据是临时生成的,并不适用项目配置的数据库
在settings.py中添加对database的描述,设置字符编码默认设置
如下:
'TEST_CHARSET': 'utf8',
'TEST_COLLATION': 'utf8_general_ci',
比如一个项目中database设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'yourname',
'USER': 'youruser',
'PASSWORD': 'youpsd',
'HOST': '127.0.0.1',
'PORT': 'yourport',
'TEST_CHARSET': 'utf8',
'TEST_COLLATION': 'utf8_general_ci',
}
}
参考:
https://docs.djangoproject.com/en/1.7/ref/settings/
http://blog.csdn.net/shanliangliuxing/article/details/9119649