我用现有的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
如何以正确的方式显示信息?
答案 0 :(得分:2)
Django似乎explicitly require您的数据库使用UTF-8:
Django假设所有数据库都使用UTF-8编码。使用其他编码可能会导致意外行为。
也就是说,应该可以使用自定义OPTIONS
设置将所需的字符集传递给数据库驱动程序。请参阅this answer,其中charset
设置解决了问题。但是您应该检查您正在使用的特定MySQL驱动程序和数据库的文档,因为Django本身不使用这些选项。
正如上面引用的建议,即使这可以正确翻译数据库和unicode之间的字符串,Django的部分仍然无法正常工作。例如,要正确验证CharField
Django必须知道编码的长度,它总是假定UTF-8
。