cancel
Showing results for 
Search instead for 
Did you mean: 

乱码问题

former_member197088
Participant
0 Kudos

以Oracle数据库中的底表作为源创建的Universe如果数据中带有中文的话在WEBI里会显示乱码,这个该怎么解决,Oracle的字符集是ISO_8859

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

乱码问题有两种原因,一种是字符集问题,另一种是字体问题。

字符问题的话,首先得保证数据库自己本身不乱码。

Oracle的话,得从cmd命令里,用sqlplus登录Oracle,然后随便查一个中文的字段看是否乱码。

如果乱码,则解决之,一般的解决方案是找DBA把Oracle的系统参数改成支持中文的编码。

当然,为了图省事,可以直接改注册表。

如果改了这个设置,Oracle仍然乱码,则要考虑是操作系统不支持中文。

验证方法是,在cmd里执行chcp 936。如果操作系统不支持936这个编码,则不支持中文。

后台这边确保不乱码了之后,要检查前台浏览器的字符集是否跟后台的字符集兼容。

一般情况下,项目里后台使用的都是utf8码。

这些都确定后,再检查字体的问题。

不过看你这个情况,应该不是字体的问题。直接略过吧。

former_member197088
Participant
0 Kudos

不是字体原因,字体乱码是方块形式的,我这明显是字符集有点问题,主要是不知道哪里的字符集有问题,编码是936,我测了的,如果我再注册表里把NLS_LANG置空的话,中间库和OA库都会乱码,如果用SIMPLIFIED CHINESE_CHINA.ZHS16GBK的话中间库直接报错了,OA库不会乱码。真心被折腾懵逼了。

former_member197088
Participant
0 Kudos

我看了一下,是我们的DW库有问题应该,中间库支持中文,我用信息设计连接中间库直接就能拿到中文的,但是DW里的中文在信息设计里就已经是乱码了,这个需要修改DW库的字符集还是设置成支持中文?

former_member197088
Participant
0 Kudos

刚问了下BASIS顾问,确实问题出在DW库上,DW库使用的是ISO_8859的字符集,有没有办法不修改DW库字符集的情况下在连接这个库的时候把它的字符集变成UTF-8支持中文?

Former Member
0 Kudos

这种情况我们一般就一句话,找DBA解决之。管他DW用的是什么软件,反正让他们保证出库的时候数据不乱码这是最基本的要求。一句话把球踢给他们就是了。

former_member197088
Participant
0 Kudos

......嗯,我和BASIS顾问说说,谢谢了。

Former Member
0 Kudos

不客气。实际上,后台出问题的原因可能会比较复杂。我们始终保持专业的事交给专业的人去做就行了。

要不改出其他问题来,还是要找到我们头上。

Answers (2)

Answers (2)

former_member197088
Participant
0 Kudos

我查看了下,Oracle的数据库语言参数是AMERICAN_ANERICA.WE8ISO8859P1,想咨询下对于WEBI里显示数据的中文值在哪里设置字符集或者说怎么解决在PLSQL中读取出来是正常的中文,但是到了BO里就是乱码。

former_member212167
Participant
0 Kudos

注册表里面需要设为: NLS_LANG=AMERICAN_AMERICA.UTF8
不知道你能否访问KB,如果能的话具体参看 KB 1599417.

former_member197088
Participant
0 Kudos

我设置成这个的话我的PLSQL会报错,很奇怪,我试试其他的。

former_member197088
Participant
0 Kudos

改了下,也不行。我看看这个KB1599417吧

Former Member
0 Kudos

一般乱码的问题安装下面的方法去查:

1. 在BO server上用命令行模式启动sqlplus,在sqlplus中查询看看是不是乱码。

如果是乱码,应该是oracle客户端字符集设置有问题。

一定要在命令行中测。

2. 如果上面测试没有乱码,就有可能是BO这边的设置问题。有可能是字体或者是bo的字符集映射问题,请提供一个乱码的截图。

former_member197088
Participant
0 Kudos

在信息设计工具里就已经是乱码了,是Oracle的字符集设置有问题么?该怎么处理?

Former Member
0 Kudos

你有试过sqlplus么?

一定要在命令行里测试,IDT测试没有用的

former_member197088
Participant
0 Kudos

这个怎么用的,在CMC里找server么?

Former Member
0 Kudos

sqlplus是oracle的SQL 命令工具。

参考一下这个link

http://jingyan.baidu.com/article/00a07f38a3665e82d028dcf9.html

former_member197088
Participant
0 Kudos

....好吧,原来是这个东西,这个不是和PLSQL查询出来的一样么,这里乱码字符集原因,我可以让它乱码,换下字符集就不是乱码了,但是不管它在这边是不是乱码,到了BO里都是乱码会是什么原因?

former_member302292
Discoverer
0 Kudos

这个问题要设定一下注册表才可以

former_member197088
Participant
0 Kudos

这里改了只是修改数据库中文乱码的解决办法,不是WEBI乱码的解决办法。