本文主要是介绍【python 编码问题】UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
插入oracle 数据发生
错误:UnicodeEncodeError: 'ascii' codec can't encode characters in position 131-136: ordinal not in range(128)
先说解决办法:
python2.7版本,在开头加入下面语句
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import os
os.environ['NLS_LANG'] = 'Simplified Chinese_CHINA.ZHS16GBK'
python3.x 版本,在开头加入下面语句
# -*- coding:utf-8 -*-
import sys
import importlib
importlib.reload(sys)
import os
os.environ['NLS_LANG'] = 'Simplified Chinese_CHINA.ZHS16GBK'import cx_Oracle as cx
原因解释:
1、这个问题是由于Unicode编码与ASCII编码的不兼容造成的。
2、通常都是ascii,由此Python自然调用ascii编码解码程序去处理字符流,当字符流不属于ascii范围内,就会抛出异常(ordinal not in range(128))。所以解决方法就是修改默认编码
这篇关于【python 编码问题】UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!