如何将Django用于其数据以LATIN1编码的传统Postgresql数据库?

时间:2011-01-20 16:13:49

标签: django postgresql

Django似乎希望它的数据库以UTF-8编码,但我们的遗留数据库是用传统系统所需的LATIN1编码的。当从/向数据库读/写时,挂钩Django的db-access东西以在UTF-8和LATIN1之间进行转换是可行/可行的吗?有没有更好的解决方案(不需要转换数据库)?

2 个答案:

答案 0 :(得分:4)

如果您将client_encoding设置为UTF8,只要您的数据库位于LATIN1(而不是SQLASCII),PostgreSQL就会为您翻译它。您可以让django发送SET client_encoding ='UTF8'命令,也可以更改postgresql.conf中的默认值。

答案 1 :(得分:0)

我建议转储sql文件并使用iconv将所有内容转换为UTF-8。

您可以使用类似于我用于西里尔文(俄语)Latin1到UTF-8的内容:

iconv -f utf-8 -t latin1 < in.sql | iconv -f cp1251 -t utf-8 > out.sql