1、问题截图
![](https://i-blog.csdnimg.cn/direct/2401c8842a884ddea1f2b53cca366895.png)
2、解决办法
###ensure it reads strings correctly.
cnxn.setdecoding(pyodbc.SQL_CHAR, encoding='utf8')
cnxn.setdecoding(pyodbc.SQL_WCHAR, encoding='utf8')
cnxn.setencoding(encoding='utf8')
3、示例代码
import pyodbc
import requests
driver = '/usr/irisodbc/bin/libirisodbc35.so'
server = '127.0.0.1'
database = 'xx'
username = 'xx'
password = 'xxx'
port = '1972'
cnxn = pyodbc.connect(driver=driver, server=server,port='1972', database=database, uid=username, pwd=password,charset='UTF-8')
###ensure it reads strings correctly.
cnxn.setdecoding(pyodbc.SQL_CHAR, encoding='utf8')
cnxn.setdecoding(pyodbc.SQL_WCHAR, encoding='utf8')
cnxn.setencoding(encoding='utf8')
cursor = cnxn.cursor()
cursor.execute("select top 10 * from xxx.xxx")
row = cursor.fetchone()
while row:
print(row)
row = cursor.fetchone()
cnxn.close()