用python连接Oracle,执行sql的时候如果条件有中文或者查询结果有中文,就会乱码,或者直接报错:
UnicodeEncodeError: 'ascii' codec can't encode character
一直以为是自己编码问题,,,,,,,,,,
其实不是,是oracle客户端的字符编码设置不对。
编写的python脚本中需要加入如下几句:
import os
os.environ["NLS_LANG"] = ".AL32UTF8"
或者
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
这样可以保证select出来的中文显示没有问题。
要能够正常的insert和update中文,还需要指定python源文件的字符集密码和oracle一致。
# -*- coding: utf-8 -*-