Ubuntu 6.10中JDK 1.5与 Oracle 10g中文乱码问题的解决 博客分类: Linux OracleJDKUbuntuRedHatSwing
焦头烂额几个小时,最后发现解决办法如此简单。正所谓:
“踏破铁鞋无觅处,得来全不费工夫”
问题的实质就是JVM没有在默认的系统字体目录上找到需要的字体。
解决问题只需要一件东西:中文字体
你可以从WINXP下的C:\WINDOWS\fonts目录去烤贝,也可以从网上下载最新的雅黑字体。我用的就是雅黑字体。
JDK 1.5中文问题的解决
查看这个文件的末尾部分,可以看见几行设定字体路径的代码。当然我们只需要关心简体中文字体的路径:
filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/zh_CN/TrueType/zysong.ttf
awtfontpath.chinese-gb18030=/usr/share/fonts/zh_CN/TrueType
对于Ubuntu 6.10,默认下是找不到/usr/share/fonts/zh_CN/TrueType目录和zysong.ttf字体文件的。在JDK 1.5下运行SWING程序出现中文乱码,原因就在此。所以接下来就要建立这个目录,并拷贝一个中文字体,并重命名为zysong.ttf。
至此,JDK1.5中文乱码问题已经解决。
Oracle 10g dbca界面中文乱码的解决
解决原理与上文相同,只不过JDK 1.5换成了JDK1.4.
sudo gedit {ORACLE_HOME}/jdk/jre/lib/font.properties
转到这个文件的末尾,可以看到两行代码:
filename.-misc-fzsongti-medium-r-normal--*-%d-*-*-p-*-iso10646-1=/usr/X11R6/lib/X11/fonts/truetype/songti_gb.ttf
appendedfontpath=/usr/X11R6/lib/X11/fonts/truetype
很凑巧,我的Ubuntu 6.10上面根本找不到/usr/X11R6/lib/X11/fonts/truetype这个目录。和上文一样,改为:
filename.-misc-fzsongti-medium-r-normal--*-%d-*-*-p-*-iso10646-1=/usr/share/fonts/zh_CN/TrueType/zysong.ttf
appendedfontpath=/usr/share/fonts/zh_CN/TrueType
运行一下dbca,发现中文终于显示正常了
Oracle 10g EM企业管理器WEB界面中的中文乱码的解决
这个要修改
{ORACLE_HOME}/jre/lib/font.properties文件,改动内容和上文完全一样。
$ emctl stop dbconsole
$ cd {ORACLE_HOME}//oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs
$ rm *.gif
$ emctl start dbconsole
然后把浏览器的缓存清理一下,重新访问:
http://localhost:1158/em
发现中文乱码终于不见了。