Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django型号utf8,带有遗留数据库_Django - Fatal编程技术网

Django型号utf8,带有遗留数据库

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

我有一个拉丁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”文件,则可以更改设置,说明您的数据库正在使用“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不支持为单个表设置字符集。但我想会有办法的。