中文显示问题(以前我自己解决过很多这类的问题,这次我就郁闷了,老大们多来帮帮忙啊)

ColinGan 2006-10-11 05:35:47
系统环境: Solaris10,语言全安装了,可以切换不同的语言,默认启动语言为LANG=C.
数据库Oracle10g for solaris x86: 英文环境下安装的数据库,字符集为: WE8ISO8859P1.

系统运行一切正常.

我安装我们的BOSS系统,我们的数据库脚本中有4种文字(英语,中文,日语,繁体中文),脚本安装完毕后,中文总是不能显示.
注:我安装脚本的时候是在数据库服务器上安装的.
无论我在数据库服务器上用sqlplus看表中的数据,还是通过client端使用plsql developer都不能正常显示.

我的client端为windows xp sp2, NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK.
可是直接在服务器端也不能显示啊.

然后我在solaris下,将操作系统的LANG=zh,用中文环境登陆操作系统,启动dbca,创建了一个新的实例,字符集选择的是:ZHS16GBK

后面的情况跟上面的一模一样,我就郁闷了,老大们给点建议.....

所有的脚本用vi查看都能显示正确的中文字符
...全文
288 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ColinGan 2006-10-20
  • 打赏
  • 举报
回复
谢谢楼上的各位朋友,搞定了

只因为我的数据库应用程序安装脚本的编码规则不对,如果我在client端运行脚本则可以正确显示中文,如果在server端无论如何都是乱码.

可是还是有点郁闷,为啥oracle9i没有问题呢.
但数据库应用脚本是不能要求在client端运行的

龙翔飞雪 2006-10-19
  • 打赏
  • 举报
回复
一向只用UTF-8... 其他怎么弄不清楚。

另外client能否显示中文呢? 最好在中文windows上去试。
(比如我这边数据库是UTF-8, 我机器能看到中文,合作的韩国人能看到韩文, 但我去查询韩文的数据库资料肯定乱码,是因为client language的关系)
ColinGan 2006-10-19
  • 打赏
  • 举报
回复
to LGQDUCKY(飘),谢谢你的意见.

但我都试过了,
我把数据库重新安装了几次都不行(也创建了不同的实例来测试),变更了多种字符集,总是不行.

但我安装oracle9i就没有这个问题,我现在不知道怎么办了,因为我们项目组必须采用oracle10g x86的.

各位大虾继续帮我想想办法,谢谢了.

另外:会不会是oracle 10g x86版本的一个bug?
LGQDUCKY 2006-10-19
  • 打赏
  • 举报
回复
windows应该没有问题
solaris 的oracle用户的权限、 .profile设置情况如何?
LGQDUCKY 2006-10-18
  • 打赏
  • 举报
回复
我觉得还是client与server的字符集问题,

你先在查下数据库里面的字符级设置,如果有必要把服务器的字符级给改了

select value$ from sys.props$ where name like 'NLS_CHAR%';

看看数据库到底是什么字符级,例如:数据库如果是ZHS16GBK

根据这个修改相应的client端字符级

就修改注册表NLS_LANG的值为为SIMPLIFIED CHINESE_CHINA.ZHS16GBK或AMERICAN_AMERICA..ZHS16GBK

如果实在不行,也可以修改可以修改数据库的字符级试下

sql>update sys.props$ set value$='ZHS16GBK' where name like 'NLS_CHAR%';
sql>commit;

重新启动数据库。


先试下。。。。。
ColinGan 2006-10-18
  • 打赏
  • 举报
回复
谢谢楼上的各位朋友,
不是字段的问题,也不是client与server的字符集问题.

因为在oracle数据库服务器上直接连接数据库(用sqlplus),然后看都是乱码
junqiang 2006-10-17
  • 打赏
  • 举报
回复
不知你的字符字段是否是NCHAR或NVARCHAR2。
白发程序猿 2006-10-16
  • 打赏
  • 举报
回复
好像client与server的字符集必须一样的,而且要与当时创建脚本时的一样
ColinGan 2006-10-13
  • 打赏
  • 举报
回复
怎么没有人再帮忙看看啊
ColinGan 2006-10-12
  • 打赏
  • 举报
回复
Client端无论使用哪种字符集都不行的,而服务器端我是不能使用UTF8这类字符集的,对于一个BOSS系统来说,有些字段的定义是非常严格的,而UTF8是变长的,最长的一个汉字能占用数据库6个字节.所以不能正确估算数据库字段长度及数据容量.

大哥们继续帮忙,顶起,有什么好思路大家都说说.
zhouyan024 2006-10-12
  • 打赏
  • 举报
回复
TRY: NLS_LANG = AMERICAN.AMERICA.UTF8
sten 2006-10-11
  • 打赏
  • 举报
回复
没碰过,不知道是不是仅字符集这么简单
Eric_1999 2006-10-11
  • 打赏
  • 举报
回复
TRY: NLS_LANG = AMERICAN.AMERICA.UTF8

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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