oracle乱码记录
plsql中显示正常,查询到的结果乱码
1.获得服务端编码
select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';
select userenv('language') from dual;
2.获得客户端编码
select * from nls_instance_parameters where parameter='NLS_LANGUAGE';
3.检查环境变量编码
4.将程序中编码设置成服务端一致
import os os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
依旧乱码,需要encode('gbk')才能显示,并没什么卵用
5.将程序中编码设置成plsql一致
os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.AL32UTF8'
数据正常,显示正常,虽然不太明白,但大概就是这么弄的
Become a Linux Programmer