[原创] Ubuntu 6.10中JDK 1.5与 Oracle 10g中文乱码问题的解决

C、C++和Java语言
回复
头像
ggjjzhzz
帖子: 137
注册时间: 2006-12-21 9:46
送出感谢: 0
接收感谢: 0

[原创] Ubuntu 6.10中JDK 1.5与 Oracle 10g中文乱码问题的解决

#1

帖子 ggjjzhzz » 2007-03-04 19:55

Ubuntu 6.10中JDK 1.5与 Oracle 10g中文乱码问题的解决
焦头烂额几个小时,最后发现解决办法如此简单。正所谓:
“踏破铁鞋无觅处,得来全不费工夫”

问题的实质就是JVM没有在默认的系统字体目录上找到需要的字体。

解决问题只需要一件东西:中文字体
你可以从WINXP下的C:\WINDOWS\fonts目录去烤贝,也可以从网上下载最新的雅黑字体。我用的就是雅黑字体。

JDK 1.5中文问题的解决

sudo gedit /usr/java/jdk1.5.0_10/jre/lib/fontconfig.Redhat.3.properties.src
查看这个文件的末尾部分,可以看见几行设定字体路径的代码。当然我们只需要关心简体中文字体的路径:

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
发现中文乱码终于不见了。
imake
帖子: 60
注册时间: 2007-05-28 11:03
送出感谢: 0
接收感谢: 0

#2

帖子 imake » 2007-06-01 9:59

好帖子,顶起来
回复

回到 “C/C++/Java”