oracle字符集编码问题

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

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

请问是什么原因?
...全文
241 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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。
又是违规昵称 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 都会影响的

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧