我使用python(2.6)
将数据从 MS-Excel 导入pyodbc
中的 PostgreSQL 。
面临的问题是:
excel源中有left single quotation mark(ANSI hex code : 0x91)
等字符。现在,当它使用pyodbc导入PostgreSQL时,它会终止并提供错误DatabaseError: invalid byte sequence for encoding "UTF8": 0x91
。
我尝试了什么:我暂时使用了decode('unicode_escape')
。但是,这不能做,因为这只是删除/逃避有关的角色。
备用试用版:最初解码,到处都是Unicode,然后在需要时从数据库中进行编码。由于手头的项目范围扩大,这也无法实现。
请建议我完成任务的一些方法/程序/内置功能。</ p>
答案 0 :(得分:1)
找出源文档的真实编码。它可能是WIN1251
。要么对它进行转码(例如使用iconv),要么相应地设置PostgreSQL的client_encoding
。
如果您在pyodbc
(我不知道)中没有设置,您始终可以发出纯SQL命令:
SET CLIENT_ENCODING TO 'WIN1251';
本手册第"Automatic Character Set Conversion Between Server and Client"章中的更多内容。