【发布时间】:2014-07-25 17:54:50
【问题描述】:
我有一个 django 应用程序,它使用 pyodbc 与带有 Latin1_General_CI_AI 编码的 MS SQL Server 数据库通信。 (我无法控制这个数据库,也无法更改编码。)
问题是来自 Django -> pyodbc 的每个字符串都必须进行编码:
例如:
m = MyModel()
m.foo = 'foo' # Garbage characters are saved
m.foo = 'foo'.encode('latin1') # String is saved correctly
m.save()
第二个问题是查询字符串也需要编码:
MyModel.objects.get(name=name) # fails
MyModel.objects.get(name=name.encode('latin1')) # works
有没有更通用的方法可以处理这个问题?模型混合或数据库后端?我在 Django 的 SQLCompiler 中看到了一些地方,但不确定如何影响它。
【问题讨论】:
标签: python sql-server django character-encoding pyodbc