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