python3 UnicodeEncodeError错误,cx_oracle模块执行sql报错:UnicodeEncodeError: 'ascii' codec can't
Posted 二十三四岁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 UnicodeEncodeError错误,cx_oracle模块执行sql报错:UnicodeEncodeError: 'ascii' codec can't 相关的知识,希望对你有一定的参考价值。
问题描述:
写了一个执行sql的模块,引用了cx_oracle,在windows机器上完美运行,移植到Centos上就会报错,
UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position
检查过程:
代码编码为utf-8,print编码为utf-8,文件编码为utf-8,服务器编码为utf-8,各种正常
定位代码报错位置,开始怀疑是sql执行成功,返回值有中文报错,但是后来通过观察,是传入sql,并没有执行成功,执行的过程中就报错了。
最后只能各种百度,各种尝试,发现如下解决办法:
解决方法:
在你执行sql的代码前加上如下代码:
import os
os.environ[‘NLS_LANG‘] = ‘SIMPLIFIED CHINESE_CHINA.UTF8‘
如果是用的django,也可以将这段代码放进每个app的admin.py中,就会全局生效(未测试。按理说是可以的)
以上是关于python3 UnicodeEncodeError错误,cx_oracle模块执行sql报错:UnicodeEncodeError: 'ascii' codec can't 的主要内容,如果未能解决你的问题,请参考以下文章
0基础学python3心得体会 - python3学习笔记 - python3基础