如何将Django与数据编码为拉丁文1的旧式Postgresql数据库一起使用?

如何将Django与数据编码为拉丁文1的旧式Postgresql数据库一起使用?,django,postgresql,Django,Postgresql,Django似乎希望其数据库编码为UTF-8,但我们的遗留数据库编码为LATIN1,这是遗留系统所需要的。在从/向数据库读/写数据时,挂接Django的db access内容以在UTF-8和LATIN1之间进行转换是可能的/可行的吗?是否有更好的解决方案(不需要转换数据库)?我建议转储sql文件,并使用iconv将所有内容转换为UTF-8 您可以使用类似于我在西里尔语(俄语)拉丁语1到UTF-8中使用的内容: iconv -f utf-8 -t latin1 < in.sql | icon

Django似乎希望其数据库编码为UTF-8,但我们的遗留数据库编码为LATIN1,这是遗留系统所需要的。在从/向数据库读/写数据时,挂接Django的db access内容以在UTF-8和LATIN1之间进行转换是可能的/可行的吗?是否有更好的解决方案(不需要转换数据库)?

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

您可以使用类似于我在西里尔语(俄语)拉丁语1到UTF-8中使用的内容:

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

如果您将client_encoding设置为UTF8,只要您的数据库是拉丁文1(而不是SQLASCII),PostgreSQL将为您翻译它。你可以让Django发送一个SENTION编码,也就是“UTF8”命令,或者你可以改变PostgreSQL中的默认值。但是,这很容易,但是我会考虑这个“转换DB”,我在我的问题中提到的,因为遗留的应用程序,我不能这么做。