问题描述
用python连接Oracle 12g插入数据(数据中含中文)报错
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)
原因
oracle客户端的字符编码设置不对。
解决方法
根据数据库不同的编码设定,我的是GBK编码。
方法一:
添加系统环境变量
NLS_LANG= 'SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
方法二:
脚本中加入环境变化
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.ZHS16GBK' # UTF编码替换为'SIMPLIFIED CHINESE_CHINA.UTF8'