Ubuntu 10.04下Netbeans使用OpenJDK造成中文显示不正常的解决方案

在Ubuntu 10.04中,使用OpenJDK安装Netbeans后,中文显示异常。通过分析OpenJDK的fontconfig.properties文件并进行修改,尤其是调整uming和wqy字体的路径和名称,可以解决Netbeans的中文显示问题。将OpenJDK的fontconfig覆盖到Sun JDK的配置,可以避免方块字现象。最终,通过使用正确的wqy字体(微米黑),成功实现了Netbeans中正常显示中文。

直接sudo apt-get install netbeans装的。

装完发现自动下载的是OpenJDK而不是Sun的JDK。OpenJDK好像在中文字体映射的配置上有些小问题。具体的症状就是Netbeans里显示的中文只能占正常宽度的一半,成了“超窄体”。

 

改正方法参考的是http://bbs.lehu.shu.edu.cn/Article.aspx?aid=124539帖子。具体如下:

 

OpenJDK的fontconfig和sun-java的fontconfig的默认写法是不一样的。所以用两个环境运行起来的netbeans 默认出现的问题是不一样的。OpenJDK运行的出现的问题既是LZ的花字现象,而sun-java运行起来出现的问题是方块字现象。

我发 现把OpenJDK默认的fontconfig原封不动地覆盖掉sun-java的fontconfig,用sun-java运行起来的netbeans 方块字的问题就解决了!分析了一下OpenJDK的fontconfig.properties文件,我发现uming和wqy的路径如下:

filename.AR_PL_UMing_CN=/usr/share/fonts/truetype/arphic/uming.ttc
filename.AR_PL_UMing_HK=/usr/share/fonts/truetype/arphic/uming.ttc
filename.AR_PL_UMing_TW=/usr/share/fonts/truetype/arphic/uming.ttc
filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/truetype/arphic/uming.ttf
filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc

然 后到这几个目录下去找,发现前三个uming的路径及文件名是对的,而第四个写错了,wqy的文件名则是写错了。

于是我觉得问题是这样的:

OpenJDK 对于uming字体的支持有问题,所以用OpenJDK运行起来的netbeans出现的是花字(文字都能找到)而不是方块(文字找不到)。而sun- java对uming字体的支持是到位的,所以把OpenJDK的字体配置拷贝给sun-java,sun-java就能正确显示文字。

那 么解决办法就是改fontconfig。

我以OpenJDK的fontconfig为蓝本,首先讲wqy的正确文件找到。其实就是把ttc 改成ttf。然后找到文件的最前面

# Chinese fonts
allfonts.umingcn=AR PL UMing CN
#allfonts.umingcn.motif=AR PL UMing CN
allfonts.uminghk=AR PL UMing HK
#allfonts.uminghk.motif=AR PL UMing HK
allfonts.umingtw=AR PL UMing TW
#allfonts.umingtw.motif=AR PL UMing TW
allfonts.wqy-zenhei=WenQuanYi Zen Hei
#allfonts.wqy-zenhei.motif=WenQuanYi Zen Hei
allfonts.shanheisun=AR PL ShanHeiSun Uni
#allfonts.shanheisun.motif=AR PL ShanHeiSun Uni

除 了wqy,其他统统注释掉。

这样,用OpenJDK运行的netbeans字体就正常显示了。

而用sun-java的,我只 是尝试了把OpenJDK的fontconfig覆盖进去,具体怎么改我也没研究过。

下面贴一下修改过的fontconfig,无论是 OpenJDK还是sun-java都能正确显示字体。。

 

下面的一长串修改以后的代码我就不贴了。不过我这么做以后发现确实能正常显示了,但是有一些字变成了方块。同时,在wqy的字体目录下发现其实还有一种微米黑,于是我就直接把

filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc

改成了

filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-microhei.ttc

再重新启动Netbeans,没发现再出现方块。我也还比较喜欢微米黑显示的效果。

虽然这样的话原来文件里命名的WenQuanYi_Zen_Hei这个对象对应了微米黑字体,有点牛头对马嘴,不过暂时就先这样不管了~

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值