LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 876|回复: 2

请教各位斑竹、高人,在linux下面怎么写入中文到oracle?

[复制链接]
发表于 2003-11-20 13:02:12 | 显示全部楼层 |阅读模式
我在linux下面用sqlplus插入中文的记录到数据库,读出来是乱码。
Oracle安装在一台win2000机器上,版本是9.0.1.0.1
linux下面装的是9.2的客户端
以下几种情况都是乱码
1:windows下插入记录,linux下读取
2:linux下插入记录,读取
3:linux下插入记录,win下读取
都是乱码,无论是用sqlplus还是我自己用OCI写的程序都一样。

是不是客户端也有字符集一说?我忘记安装的时候有没有选了!!如果有,怎样改?
 楼主| 发表于 2003-11-21 12:45:53 | 显示全部楼层
定义如下环境变量NLS_LANG=american_america.ZHS16GBK
varchar2,char,clob可以正确读写中文了,但是nvarchar2,nchar,nclob还是不能用wchar_t的buffer写进去。
可是在windows下一切正常。郁闷
 楼主| 发表于 2003-11-21 17:03:35 | 显示全部楼层
wchar_t * p1=L"abc";
int len1 = wcslen(p1);
whcar_t * p2=L"中文";
int len2 = wcslen(p2);
wchar_t * p3=L"a中文";
int len3 = wcslen(p3);
在linux下面的结果是: len1=3,len2=4,len3=5
而在windows下面:     len1=3,len2=2,len3=3
这是不是说明linux是用的UTF8?能不能让它用UTF16?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表