如何解决Oracle10g EM乱码问题


安装完Oracle10g后,一切都正常。但是当客户端浏览器的首选语言选择为中文(Chinese/China[zh-cn]),登录EM时,EM的按钮(图片)可能会出现乱码(EM会根据客户端设置自动选择显示语言)。原来我也遇到了相传已久的乱码问题。如下图:

  (Firefox语言选项设置)

  (EM按钮出现乱码)

  据说,如果安装时,我们系统环境变量设置的是中文环境(而我的RHEL5.2恰恰是选择的英文环境),那么就不会有这个问题。这个问题根本原因在于安装时,JDK/JRE字符集的自动选择。还好有网络,有Google,经过搜索,有很多关于这个问题的解决办法(但大多是同一篇文章)。照葫芦画瓢,跟着做吧:

  在 $ORACLE_HOME/jdk/jre/lib 和 $ORACLE_HOME/jre/1.4.2/lib目录下都有多种字符集字体配置文件:

[oracle@RHEL ~]$ cd $ORACLE_HOME/jdk/jre/lib
[oracle@RHEL lib]$ ls font*zh_CN*
font.properties.zh_CN.Redhat   font.properties.zh_CN.Sun
font.properties.zh_CN.Redhat2.1 font.properties.zh_CN_UTF8.Sun
[oracle@RHEL lib]$ cd $ORACLE_HOME/jre/1.4.2/lib/
[oracle@RHEL lib]$ ls font*zh_CN*
font.properties.zh_CN.Redhat font.properties.zh_CN.Redhat2.1 
font.properties.zh_CN.Sun font.properties.zh_CN_UTF8.Sun 

  我们只要用合适的中文字符集文件替换缺省文件即可,我选择使用font.properties.zh_CN.Sun来替换缺省字体定义文件:

[oracle@RHEL lib]$ cp font.properties font.properties.bak 
[oracle@RHEL lib]$ cp font.properties.zh_CN.Sun font.properties 

  替换之后需要清理一下Cache,重启EM即可.

  Cache路径通常位于:

  $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs 

  清除所有gif文件即可.然后重新启动EM:

[oracle@RHEL lib]$ emctl stop dbconsole
TZ set to UTC
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 
Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
http://RHEL.smnpc.com:1158/em/console/aboutApplication
Stopping Oracle Enterprise Manager 10g Database Control ...
... Stopped.
[oracle@RHEL lib]$ emctl start dbconsole
TZ set to UTC
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 
Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
http://RHEL.smnpc.com:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 10g Database Control ........................ started.
------------------------------------------------------------------
Logs are generated in directory /usr/app/oracle/product/10.2.0/db_1/RHEL.smnpc.com_orcl/sysman/log

  按照网络上的说法,只要重新登录EM,那么就应该显示正常了。但是,世界上的事终究不是那么一帆风顺,按照古人的说法就是前途光明,道路曲折,问题依然存在。又找了N久,还是没找到解决办法。想来想去,还是觉得这条路或者思路应该是正确的,问题是出在某个地方。查看font.properties(也就是font.properties.zh_CN.Sun)的内容,发现了其中端倪:

filename.-misc-fzsongti-medium-r-normal--*-%d-*-*-p-*-gbk-0=/usr/X11R6/lib/X11/fonts/truetype/songti_gb.ttf
appendedfontpath=/usr/X11R6/lib/X11/fonts/truetype

  恍然大悟,因为这个字体文件根本不存在。修改成已有的中文字体文件:

#filename.-misc-fzsongti-medium-r-normal--*-%d-*-*-p-*-gbk-0=/usr/X11R6/lib/X11/fonts/truetype/songti_gb.ttf
filename.-misc-fzsongti-medium-r-normal--*-%d-*-*-p-*-gbk-0=/usr/share/fonts/chinese/TrueType/STSONG.TTF
# appendedfontpath=/usr/X11R6/lib/X11/fonts/truetype
appendedfontpath=/usr/share/fonts/chinese/TrueType

  再次重启EM,登录。OMG,正常了


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3