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

浙公网安备 33010602011771号