您的位置:首页 > 数据库

django test数据库乱码

2015-10-08 17:06 246 查看

问题描述

在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的描述,设置字符编码默认设置

如下:

[code]'TEST_CHARSET': 'utf8',        
'TEST_COLLATION': 'utf8_general_ci',


比如一个项目中database设置:

[code]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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: