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

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

posted @ 2019-03-07 19:06  clq.lib  阅读(839)  评论(0编辑  收藏  举报