记python3 UnicodeEncodeError: 'latin-1' codec... 报错

时间:2022-06-15 18:46:38

python3用cx_Oracle查询oracle数据库并打印输出,在windows上执行没问题,打算放suse上跑的时候就遇到了打印中文UnicodeEncodeError: 'latin-1' codec can't encode...报错。

很摸不着头脑(摊手。。)

oracle中的数据存储是GBK编码的。

我在输出的地方改为:print(res.encode('GBK').decode('latin-1'))就可以正常打印。

觉得不应该呀

网上查询一番后修改输出默认编码就可以了

import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding=’GBK’) #改变标准输出的默认编码

有空研究下

https://blog.csdn.net/he_and/article/details/80675070

http://www.cnblogs.com/lansan0701/p/8029171.html

https://www.programcreek.com/python/example/5779/io.TextIOWrapper

https://blog.csdn.net/duankun7323/article/details/79277443