2006年2月16日星期四

解决Linux下Java程序的中文显示问题。

一直以来,Fedora系统里Java程序的GUI上中文字体总是显示为方框。
按照Google到的一篇帖子的做法,执行如下:
  1. 拷贝中文字体到JRE_HOME/lib/fonts下
  2. 修改JRE_HOME/lib/fonts/fonts.dir,字体个数加1,添加一个字体条目(如gbsn00lp.ttf -SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0)
  3. 在JRE_HOME/lib/下任选一个字体配置属性模板文件(如fontconfig.RedHat.properties.src),另存为fontconfig.properties
  4. 编辑fontconfig.properties,在# Component Font Mappings部分添加如下内容:
    serif.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    serif.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    serif.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    serif.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    sansserif.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    sansserif.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    sansserif.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    sansserif.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    monospaced.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    monospaced.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    monospaced.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    monospaced.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    dialog.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    dialog.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    dialog.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    dialog.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    dialoginput.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    dialoginput.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    dialoginput.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    dialoginput.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
    将# Search Sequences部分改为
    sequence.allfonts=zh-1
  5. 应当OK了。
但运行程序发现中文仍显示为方框,郁闷了半天,最终蒙到了一种解决方法:
将除fongtconfig.properties之外的所有字体配置文件全部移走。
终于OK了。

没有评论: