Django字符latin1 mysql

时间:2015-02-15 04:57:59

标签: django character-encoding latin1

我用现有的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

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

1 个答案:

答案 0 :(得分:2)

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

  

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

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

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