Django型号utf8,带有遗留数据库
我有一个拉丁1编码的遗留数据库。我没有权限将其更改为utf8。当我从模型中读取值时,我得到的是乱码文本 我试图使用name.decode('utf-8'),但它抛出了一个unicode错误:Django型号utf8,带有遗留数据库,django,Django,我有一个拉丁1编码的遗留数据库。我没有权限将其更改为utf8。当我从模型中读取值时,我得到的是乱码文本 我试图使用name.decode('utf-8'),但它抛出了一个unicode错误: 'ascii' codec can't encode characters in position 4-12: ordinal not in range(128) name.encode('utf-8')也不起作用 如果您有权访问“settings.py”文件,则可以更改设置,说明您的数据库正在使用“l
'ascii' codec can't encode characters in position 4-12: ordinal not in range(128)
name.encode('utf-8')也不起作用 如果您有权访问“settings.py”文件,则可以更改设置,说明您的数据库正在使用“latin1”
u = unicode(name,'latin-1')
print u.encode('utf-8')
以下是“settings.py”文件中的“DATABASES”配置示例
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test_db',
'USER': 'root',
'PASSWORD': '',
'HOST': '',
'PORT': '3306',
'OPTIONS': {
'charset': 'latin1',
'use_unicode': True, },
},
}
我之前也有类似的问题,在这里查看链接如果是拉丁语-1,为什么需要将其更改为utf-8?它应该是一些中文文本。如果latin1显示了一些乱码,谢谢。这很有效。但是您知道如何为各个表设置字符集吗?有些表使用latin1,有些使用utf-8。AFAIK Django不支持为单个表设置字符集。但我想会有办法的。