如何解决Oracle10g EM乱码问题
2009-01-08 13:10:05 来源:WEB开发网安装完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,正常了
- ››如何检查oracle的归档空间是否满了
- ››如何在浏览器中打开PDF文件并实现预览的思路与代码...
- ››如何改Win7系统我的文档保存位置
- ››解决flash 中无法导出swf文件的方法
- ››解决"ios模拟器未能安装此应用程序"办法...
- ››如何让ios app支持32位和64位
- ››如何删除Windows 8系统未知的账户
- ››如何提高win7系统的响应速度?
- ››解决jquery easyui easyloader加载外部js文件失败...
- ››解决无法使用Android SDK Manager下载SDK开发包的...
- ››解决网页内容无法复制
- ››解决Android手机在开发调试时logcat不显示输出信息...
更多精彩
赞助商链接