码迷,mamicode.com
首页 > 数据库 > 详细

python3 UnicodeEncodeError错误,cx_oracle模块执行sql报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position

时间:2019-09-30 14:29:29      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:完美   class   print   服务器   acl   sql   python   china   生效   

问题描述:

  写了一个执行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 encode characters in position

标签:完美   class   print   服务器   acl   sql   python   china   生效   

原文地址:https://www.cnblogs.com/by1994/p/11612339.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!