碰上oracle字符集问题

本文详细介绍了如何通过设置Linux环境变量解决VC6与LinuxGCC跨平台下UTF-8中文发送与接收过程中出现的乱码问题。通过修改NLS_LANG环境变量并重启后台进程,确保了字符集的一致性,从而实现了数据的正确传输与显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前台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不执行字符集转换。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值