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'

数据正常,显示正常,虽然不太明白,但大概就是这么弄的

原文地址:https://www.cnblogs.com/lurenjia1994/p/9566628.html