碰上oracle字符集问题

前台UI进程(VC6编写)将UTF-8中文发给后台服务程序(Linux GCC),后台再写入oracle数据库,然后前台再通过后台将数据取出,并显示;后台没有做编解码转换,前台则在VC默认的GBK与UTF-8之间作转换。

 

开始时系统出现乱码,后来通过设置Linux一个环境变量、重启后台进程问题解决(问题是曾经尝试过更改该环境变量,但乱码依旧,不确定当时的原委)。

 

方式:

使用SQL*PLUS工具查询oracle server的字符集:

select userenv('language') from dual;

显示为“SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280”;

 

查看oracle client端的字符集:

echo $NLS_LANG

显示为空,于是执行export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280',并重启进程,测试后问题解决。

 

 

如果oracle client与oracle server的字符集设置一致,则oracle不执行字符集转换。

你可能感兴趣的:(碰上oracle字符集问题)