【问题标题】:Django character latin1 mysqlDjango 字符 latin1 mysql
【发布时间】:2015-04-15 21:13:32
【问题描述】:

我用现有的 MySQL 数据库创建了一个 django 应用程序,问题是数据库的编码是 latin1_general_c 并且 utf8 字符是这样保存的ñ => ñó => ó,我需要以正确的形式在该页面中显示信息但是django这样显示数据库的信息

recepción, 4 oficinas, 2 baños

i need show like this

recepcíon, 4 oficinas, 2 baños

由于多种原因,我无法将数据库更改为 utf8

如何以正确的方式显示信息?

【问题讨论】:

    标签: django character-encoding latin1


    【解决方案1】:

    Django 似乎 explicitly require 你的数据库使用 UTF-8:

    Django 假定所有数据库都使用 UTF-8 编码。使用其他编码可能会导致意外行为。

    也就是说,应该可以使用自定义OPTIONS 设置将所需的字符集传递给数据库驱动程序。请参阅this answer,其中设置charset 解决了问题。但是您应该查看您正在使用的特定 MySQL 驱动程序和数据库的文档,因为 Django 本身不使用这些选项。

    正如上面的引用所暗示的,即使这可以在数据库和 unicode 之间正确转换字符串,Django 的某些部分仍然无法正常工作。例如,要正确验证CharField 的长度,Django 必须知道编码,并且它总是假定UTF-8

    【讨论】:

    • 非常非常感谢你救了我的命,我使用 'charset': 'latin1','use_unicode': False , no work 'use_unicode': True
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 2015-09-29
    • 2015-06-21
    • 1970-01-01
    • 2015-07-23
    • 2012-03-07
    相关资源
    最近更新 更多