Skip to Content

乱码问题

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

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

3 Answers

  • Best Answer
    avatar image
    Former Member
    May 05, 2016 at 10:16 AM

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

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

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

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

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

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

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

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

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

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

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

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Robert lai

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

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

  • avatar image
    Former Member
    Apr 21, 2016 at 01:36 AM

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

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

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

    一定要在命令行中测。

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

    Add comment
    10|10000 characters needed characters exceeded

  • May 04, 2016 at 08:05 AM

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

    Add comment
    10|10000 characters needed characters exceeded