Debian下NetBeans中文字体显示为方块的解决方法

本文转载自:http://blog.csdn.net/tanghw/article/details/4380534

在Debian下安装NetBeans,中文字体显示为方块。这是因为NetBeans调用了JDK的字体设置而造成的,因此,要解决这个问题,需设置好JDK的中文字体环境。

笔者的JDK的安装路径在/usr/local/jdk1.6.0_14/下,以下简称为"${JDK_HOME}"。JDK自带了几种字体,在${JDK_HOME}/jre/lib/fonts下面,全是英文字体。当需要显示中文时,JDK实际上是到用户所安装的中文路径下去寻找。NetBeans通过fontconfig的文件来定义了这种寻找字体的规则。这个文件就在${JDK_HOME}/jre/lib下面。打开该目录,下面有好几个Linux系统下的字体配置文件,如fontconfig.RedHat.x.x.properties.bfc, fontconfig.RedHat.x.x.properties.src, fontconfig.Sun.properties.bfc, fontconfig.Sun.properties.src, fontconfig.SuSE.properties.bfc, fontconfig.SuSE.properties.src, fontconfig.Turbo.properties.bfc, fontconfig.Turbo.properties.src等。.bfc是二进制文件,而.src是源文件。Sun的工程师不爱Debian,因此没有为Debian用户预设一个字体配置文件。我们现在就来打造它。

检查${JDK_HOME}/jre/lib下面有没有一个名为fontconfig.properties的文件,如果已有,请先将其备份:
cd /usr/local/jdk1.6.0_14/jre/lib
sudo cp fontconfig.properties fontconfig_bak.properties

之后,在当前路径下,
sudo cp fontconfig.properties.src fontconfig.properties
将fontconfig.properties.src复制为fontconfig.properties,打开该文件以编辑:
sudo gedit fontconfig.properties
其内容如下:

# @(#)linux.fontconfig.properties 1.2 03/10/28
#
# Copyright 2003 Sun Microsystems, Inc. All rights reserved.
#

# Version

version=1

# Component Font Mappings


serif.plain.latin-1=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
serif.bold.latin-1=-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1
serif.italic.latin-1=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1
serif.bolditalic.latin-1=-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1

sansserif.plain.latin-1=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
sansserif.bold.latin-1=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
sansserif.italic.latin-1=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
sansserif.bolditalic.latin-1=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1

monospaced.plain.latin-1=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
monospaced.bold.latin-1=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
monospaced.italic.latin-1=-b&h-lucidatypewriter-medium-i-normal-sans-*-%d-*-*-m-*-iso8859-1
monospaced.bolditalic.latin-1=-b&h-lucidatypewriter-bold-i-normal-sans-*-%d-*-*-m-*-iso8859-1

dialog.plain.latin-1=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
dialog.bold.latin-1=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
dialog.italic.latin-1=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
dialog.bolditalic.latin-1=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1

dialoginput.plain.latin-1=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
dialoginput.bold.latin-1=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
dialoginput.italic.latin-1=-b&h-lucidatypewriter-medium-i-normal-sans-*-%d-*-*-m-*-iso8859-1
dialoginput.bolditalic.latin-1=-b&h-lucidatypewriter-bold-i-normal-sans-*-%d-*-*-m-*-iso8859-1

# Search Sequences

sequence.allfonts=latin-1

# Exclusion Ranges

# Font File Names

首先,在# Component Font Mappings之行下加上:
allfonts.chinese-cn-iso10646=-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
该行以JDK规范的格式定义了一个名为chinese-cn-iso10646的全局字体。

然后,在sequence.allfonts=latin-1之行下加下:
sequence.allfonts.UTF-8.zh.CN=latin-1,chinese-cn-iso10646
sequence.fallback=chinese-cn-iso10646,lucida
意为在UTF-8.zh.CN的环境下,加载latin-1,chinese-cn-iso10646的字体。如果找不到,则使用chinese-cn-iso10646,lucida的字体。chinese-cn-iso10646出现了两次,因为我们确实不希望漏掉它。多个机会容易成功。:)

为什么要使用UTF-8.zh.CN?打开一个终端,输入
echo $LANG
笔者的Debian上就显示出“zh_CN.UTF-8”,如果您的电脑不是,请作相应修改。注意把顺序调用为相反的,即sequence.allfonts.UTF-8.zh.CN。

下面将字体名称与实际字体文件挂钩起来。在最后一行# Font File Names下,加上:
filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/arphic/gbsn00lp.ttf
=号左边为字体名称,右边为实际的字体文件。这是一个宋体字体文件。如果您的系统此路径下没有该字体文件,您只好亲自去找了,找到后变更为实际路径及文件名即可。Songzi Blog (http://www.songzi.org/blog/article.asp?id=204) 介绍了获取几种中文字体的方法,感兴趣的可去试试。

最后一步,还要告诉JDK这个字体的存放路径。
awtfontpath.chinese-cn-iso10646=/usr/share/fonts/truetype/arphic

存盘后启动NetBeans,方块不见了,代之的是久违的汉字。

转载于:https://www.cnblogs.com/ligongzi/articles/2726555.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值