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