【发布时间】:2016-02-24 14:31:21
【问题描述】:
我有一个烧瓶应用程序,它最近不得不开始使用 mssql 生成的 guid 作为主键(以前它只是整数)。 guid 是 latin-1 编码。另外,我没有使用 sqlalchemy。现在,当我尝试在烧瓶 jinja2 模板中显示查询的 mssql guid 时,出现以下错误:
UnicodeDecodeError:“ascii”编解码器无法解码位置 0 中的字节 0xc1:序数不在范围内 (128)。
我试过了:
- 在 linux 主机上取消设置 LANG
- 在 FreeTDS 配置中强制使用 utf-8(这已经完成)
- 在 jinja 模板中转义
- 使用 python3,没有运气
- 从 pypyodbc 切换到 pyodbc3,但问题仍然存在
似乎没有任何效果。如果我导入 sys 并将解码设置为 utf-8,错误会改变用 utf-8 替换 ascii,但 jinja 模板不会呈现 guid。
有什么想法吗?谢谢阅读。另外需要注意的是,我的开发环境是在 Windows 7 上,这个问题不会在那里出现。它只在 linux 服务器上。
【问题讨论】:
-
您是否尝试过其他驱动程序?
pymssql似乎比其他一些更好地处理 unicode。
标签: python sql-server flask jinja2