智能视界

随笔 - 28, 文章 - 3, 评论 - 24, 引用 - 0
数据加载中……

Linux系统安装JDK1.5.05如何中文正常显示?

今天安装JDK1.5.05 for Linux,安装和配置一切顺利,可是在运行awt窗口程序的时候中文不能正常显示。中文字全部显示“口”,估计是缺省字体的原因。请求帮助!谢谢解答!(如图)

blog51003.jpg

posted on 2005-10-03 13:11 智能视界 阅读(438) 评论(1)  编辑 收藏 引用 所属分类: XMLweb

评论

# re: Linux系统安装JDK1.5.05如何中文正常显示?  回复  更多评论   

问题已经解决谢谢大家帮助!
需要在JRE/FONT中加入JAVA_CN中一个文件。或者参考下面文章:
Keywords: 5.0, Swing, TrueType Fonts, Chinese Location, ttmkfdir

JDK5.0 Swing采用TrueType 字体作为显示字体,而目前大多数UNIX操作系统还不支持中文TrueType字体,所以显示到中文时就变成了小方块。本文讲解如何使得中文在Swing 中正常显示。

1。中文字体的获得

中文TrueType字体是容易获得的,如在Windows操作系统中缺省提供的几种,或市面上的方正,文鼎等。购买后拷贝至Unix平台上即可。

2。让Java引用指明的中文字体

在JRE 的fonts.propertie中指明了Java 运行时字体的来源,在Windows 环境下,字体名形如:Courier New,ANSI_CHARSET,而在Unix下,字体名则为:adobe-times-medium-r-normal--*-%d-*-*-*-*-iso8859-1。所以,即便是同样的字体,在font.properties中的写法也是不一样的。Unix下,关于一个TrueType字体文件中包含了几种字体类型, 是通过字体所在目录中fonts.dir文件指明的。以下是fonts.dir示例:
4
SIMSUN.TTF -misc-SimSun-medium-r-normal--0-0-0-0-p-0-ascii-0
SIMSUN.TTF -misc-SimSun-medium-r-normal--0-0-0-0-p-0-fcd8859-15
SIMSUN.TTF -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-15
SIMSUN.TTF -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1

开头的4指明在这个目录中有4种字体,都存放于SimSun.TTF(宋体)文件中。关于fonts.dir的生成,在http://WWW.joerg-pommnitz.dE/TrueType/ttmkfdir.tar.gz 提供了一个工具 ttmkfdir, 在字体所在目录运行即可。这个工具需要perl 5 和 freetype 1.1,Perl 5一般在Unix平台上都有,freetype1.1在ftp://sunsite.unc.edu/pub/Linux/X11/fonts/freetype-1.1.tar.gz 。再举例几个常用的字体文件名:

SimYou.ttf -ZHUHAI Stone-YouYuan-medium-r-normal--0-0-0-0-m-0-ascii-0 (幼圆)
SimLi.ttf -ZHUHAI Stone-LiSu-medium-r-normal--0-0-0-0-m-0-ascii-0(隶书)
SIMKAI.TTF -misc-KaiTi_GB2312-medium-r-normal--0-0-0-0-p-0-ascii-0(楷体)
SIMHEI.TTF -misc-SimHei-medium-r-normal--0-0-0-0-p-0-ascii-0 (黑体)
SIMFANG.TTF -misc-FangSong_GB2312-medium-r-normal--0-0-0-0-p-0-ascii-0 (仿宋)

接下来修改font.properites文件(如果有相应的中文字体配置文件就更好,替换掉其中非TrueType中文字体,像在HP-UX上就有font.properties.zh_CN,再覆盖font.properties文件),可以定位其中一种字体名,用上面的中文字体名替换,下面是在HP-UX上修改后的fonts.properties部分示例:

serif.plain.0=-adobe-times-medium-r-normal--*-%d-*-*-*-*-iso8859-1
serif.plain.1=-misc-SimSun-medium-r-normal--*-%d-*-*-p-*-iso8859-15
serif.plain.2=-adobe-symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific
serif.plain.3=-adobe-symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific

#serif.italic.0=-agfa-cgtimes-medium-i-normal--*-%d-*-*-p-*-iso8859-1
serif.italic.0=-adobe-times-medium-i-normal--*-%d-*-*-*-*-iso8859-1
serif.italic.1=-misc-SimSun-medium-r-normal--*-%d-*-*-p-*-iso8859-15
serif.italic.2=-adobe-symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific
serif.italic.3=-adobe-symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific

#serif.bold.0=-agfa-cgtimes-bold-r-normal--*-%d-*-*-p-*-iso8859-1
serif.bold.0=-adobe-times-bold-r-normal--*-%d-*-*-*-*-iso8859-1
serif.bold.1=-misc-SimSun-medium-r-normal--*-%d-*-*-p-*-iso8859-15
serif.bold.2=-adobe-symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific
serif.bold.3=-adobe-symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific
。。。
注意字体文件中的-misc-SimSun-medium-r-normal--0-0-0-0-p-0-fcd8859-15在写入font.properties时被改为上面的-misc-SimSun-medium-r-normal--*-%d-*-*-p-*-iso8859-15,以实现TrueType字体的平滑缩放。

运行Java应用程序时,设置环境变量JAVA_FONTS为中文TrueType字体所在目录,如:
export JAVA_FONTS=/usr/lib/X11/fonts/ttfdir

这样,Swing 的中文显示就正常了。
2005-10-18 19:38 | 智能视界
只有注册用户登录后才能发表评论。