oracle字符集编码问题

shalen520 2009-02-06 04:08:24
oracle 9i,服务端字符集设置为AMERICAN_AMERICA.UTF8,客户端NLS_LANG与服务端一致

问题:
程序1录入中文,数据库以双字节保存
程序2录入相同的中文,数据库却以三字节保存
从而导致1,2录入的字符互不兼容,录入的数据在另外的程序中显示为乱码

请问是什么原因?
...全文
190 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shalen520 2009-02-10
xiaoxiao1984 是对的,感谢各位,结贴
  • 打赏
  • 举报
回复
watson110 2009-02-09
1.查询服务器端配置的字符集。在sqlplus中以dba用户执行:
select tab1.aa||'_'||tab2.bb||'.'||tab3.cc from (select VALUE$ aa from sys.props$ where name='NLS_LANGUAGE')tab1,(select VALUE$ bb from sys.props$ where name='NLS_ISO_CURRENCY')tab2,(select VALUE$ cc from sys.props$ where name='NLS_CHARACTERSET')tab3;

2.在客户端的注册表HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中,如无系统变量NLS_LANG,则“新建”->“字符串”,重命名为“NLS_LANG”,并赋值为上述查询变量的值(注意引号内的字符应大写),再查看时不需要重启Oracle。
  • 打赏
  • 举报
回复
lpc19598188 2009-02-07
应该是程序1的问题
  • 打赏
  • 举报
回复
hugh_9 2009-02-07
oracle的字符集有三方面,服务器端,客户端,已经客户端的os这三者之间的字符集要相互兼容才能显示正常的字符;
另外你的应用的通过什么实现的,应用的字符集也是要和数据库的字符集设置成一致的,这样才能在程序中正确显示字符;
  • 打赏
  • 举报
回复
南非蚊子 2009-02-07
程序字符集的问题
  • 打赏
  • 举报
回复
xiaoxiao1984 2009-02-06
UTF8使用3个字节为汉字编码

程序1的字符集配置处理有问题
  • 打赏
  • 举报
回复
dawugui 2009-02-06
http://topic.csdn.net/u/20090111/12/9eb8eacd-17e7-4474-9857-0c4282a2ddcb.html
  • 打赏
  • 举报
回复
adamxgl 2009-02-06
我觉得这个和oracle的编码没有关系,你应该好好看看你的两个程序是不是已经预先编码了

比如jsp上的UTF 和 GBK 都会影响的
  • 打赏
  • 举报
回复
相关推荐
发帖
Oracle

1.6w+

社区成员

Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
帖子事件
创建了帖子
2009-02-06 04:08
社区公告
暂无公告