首页 > 解决方案 > UnicodeDecodeError:“ascii”编解码器无法解码位置 10 中的字节 0xc5:序数不在范围内(128)从 DB2 表读取数据时

问题描述

使用 PYTHON 3.x 从 DB2 表读取数据时出现错误。

UnicodeDecodeError:“ascii”编解码器无法解码位置 10 中的字节 0xc5:序数不在范围内(128)

标签: python-3.xpandasdb2

解决方案


默认情况下,Python 和您的 ODBC 驱动程序都在查看您在 Linux 中的语言环境设置以确定您的默认编码。

首先,如下设置您的区域设置:

export LC_ALL=C.UTF-8

其次,不要在 SQL 查询中使用字符串文字,而是使用参数:

例如,改变

c.execute("INSERT INTO table (data) VALUES ('non-ascii stuff')"

c.execute("INSERT INTO table (data) VALUES (?)", ['non-ascii stuff'])

推荐阅读