【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))。所以解决方法就是修改默认编码

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页