2

正在使用. _ _ python(2.6)_pyodbc

面临的问题是:

left single quotation mark(ANSI hex code : 0x91)excel 源代码中有 , 等字符。现在,当它使用 pyodbc 导入 PostgreSQL 时,它会终止并给出错误DatabaseError: invalid byte sequence for encoding "UTF8": 0x91

我尝试了什么:decode('unicode_escape')暂时使用了。但是,这不能完成,因为这只是删除/转义了相关字符。

替代试验:最初解码,Unicode 无处不在,然后在需要时从数据库中编码。由于手头的项目范围很广,这也无法做到。

请建议我一些方法/程序/内置函数来完成任务。

4

1 回答 1

1

找出源文档的真实编码。可能是WIN1251。对其进行转码(例如使用iconv)或相应地设置client_encodingPostgreSQL 的。

如果你没有设置pyodbc(我不知道),你总是可以发出一个普通的 SQL 命令:

SET CLIENT_ENCODING TO 'WIN1251';

更多内容在手册的“服务器和客户端之间的自动字符集转换”一章中。

于 2011-11-23T11:25:55.180 回答