OpenJDK 6 用文泉驿正黑花掉 只能用文泉驿微米黑?

系统字体配置、中文显示和输入法问题
回复
EpsilonY
帖子: 31
注册时间: 2007-06-19 22:39
联系:

OpenJDK 6 用文泉驿正黑花掉 只能用文泉驿微米黑?

#1

帖子 EpsilonY » 2010-05-04 16:09

系统 Ubuntu 10.04 (Lucid) 32位
OpenJDK 6
java -version:

代码: 全选

java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8) (6b18-1.8-0ubuntu1)
OpenJDK Client VM (build 14.0-b16, mixed mode, sharing)
前两天升级至Lucid,因为官方源中已经没有了SunJDK,所以就装了OpenJDK,结果如同以往碰到的情况一样,中文显示为“花瘦体”
现在问题通过以下步骤基本解决了:
1.备份/usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties
2.修改fontconfig.properties如下(包括修改了wqy-zenhei.ttf,uming.ttf的问题)

# Version

# Uses Ubuntu 8.04 (hardy), Debian 6.0 (Squeeze) (and more recent releases) fonts and file paths.
version=1

# Component Font Mappings

# Chinese fonts
allfonts.umingcn=WenQuanYi Micro Hei
#allfonts.umingcn=AR PL UMing CN
#allfonts.umingcn.motif=AR PL UMing CN
allfonts.uminghk=WenQuanYi Micro Hei
#allfonts.uminghk=AR PL UMing HK
#allfonts.uminghk.motif=AR PL UMing HK
allfonts.umingtw=WenQuanYi Micro Hei
#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
allfonts.wqy-mirochei=WenQuanYi Micro Hei
……
……
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.ttc #原为uming.ttf 显为BUG
……
……
filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc #原为wqy-zenhei.ttf 显为BUG
filename.WenQuanYi_Micro_Hei=/usr/share/fonts/truetype/wqy/wqy-microhei.ttc #新增

# AWT X11 font paths
awtfontpath.latin-1=/usr/share/fonts/X11/Type1
awtfontpath.umingcn=/usr/share/fonts/truetype/arphic
awtfontpath.uminghk=/usr/share/fonts/truetype/arphic
awtfontpath.umingtw=/usr/share/fonts/truetype/arphic
awtfontpath.shanheisun=/usr/share/fonts/truetype/arphic
awtfontpath.wqy-zenhei=/usr/share/fonts/truetype/wqy
awtfontpath.wqy-microhei=/usr/share/fonts/truetype/wqy #增加这行
awtfontpath.japanese-kochi=/usr/share/fonts/truetype/kochi
awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/sazanami
awtfontpath.japanese-vlgothic=/usr/share/fonts/truetype/vlgothic
awtfontpath.korean-baekmuk=/usr/share/fonts/truetype/baekmuk
awtfontpath.korean-un=/usr/share/fonts/truetype/unfonts




不过,这个解决办法还有遗留,那就是文泉驿正黑用不起来,只能用文泉驿微米黑,因为一旦把上边的allfonts.umingcn,allfonts.uminghk,allfonts.umingtw的值改成WenQuanYi Zen Hei,中文字体就变成“花瘦花瘦”的了。

是我的设置出了问题,还是怎么回事?
此外,我在用freemind的时候,发现使得文泉驿正黑的那部分中文就会花掉,而使用文泉驿微米黑的用没有事情,甚致用文泉驿等宽正墨都是OK的
一个混用(子结点从下至下分别为:)文泉驿微米黑,文泉驿等宽微米黑,文泉驿等宽正黑,文泉驿正黑的例子。
一个混用(子结点从下至下分别为:)文泉驿微米黑,文泉驿等宽微米黑,文泉驿等宽正黑,文泉驿正黑的例子。
PS:
1.劝我换回SunJDK的同学们先谢谢了。我只是想知道问题是不是出自我的fontconfig.properties上。
2.fontconfig.properties的uming.ttf以及wqy-zenhei.ttf错误显然是一个BUG,这个应该向谁提交?有人提交过么?
3.谢谢
duolon
帖子: 55
注册时间: 2008-11-10 19:12

Re: OpenJDK 6 用文泉驿正黑花掉 只能用文泉驿微米黑?

#2

帖子 duolon » 2010-05-04 17:39

mark。
照楼主这么改后,确实java里能部分正确显示中文了。。。wqy-zenhei总是不行,同求解。。
EpsilonY
帖子: 31
注册时间: 2007-06-19 22:39
联系:

Re: OpenJDK 6 用文泉驿正黑花掉 只能用文泉驿微米黑?

#3

帖子 EpsilonY » 2010-05-04 22:23

自己顶一下!
另!就是用微米黑等,字的边缘还是有彩色的像素(可仔细看顶楼的插图),这点真是不爽。
是不是该把这贴也放到C++/Java子版去?
头像
黄美姬
帖子: 8428
注册时间: 2009-10-08 11:15
来自: 大城市铁岭

Re: OpenJDK 6 用文泉驿正黑花掉 只能用文泉驿微米黑?

#4

帖子 黄美姬 » 2010-05-04 22:28

我们是命运的妓女,它把我们都嫖了

N卡驱动:http://www.nvidia.cn/Download/index.aspx?lang=cn
极品飞车:http://www.geforce.cn/optimize/optimal- ... ts-450-ops
孤岛危机优化设置:http://www.geforce.cn/optimize/optimal- ... tx-450-ops
:cp /etc/skel/.bashrc ~/
PS1="\[\e]2;\u@\H \w\a\e[32;1m\]\T$\[\e[0m\] "
http://cdimage.ubuntu.com/
http://releases.ubuntu.com/
头像
黄美姬
帖子: 8428
注册时间: 2009-10-08 11:15
来自: 大城市铁岭

Re: OpenJDK 6 用文泉驿正黑花掉 只能用文泉驿微米黑?

#5

帖子 黄美姬 » 2010-05-04 22:32

我们是命运的妓女,它把我们都嫖了

N卡驱动:http://www.nvidia.cn/Download/index.aspx?lang=cn
极品飞车:http://www.geforce.cn/optimize/optimal- ... ts-450-ops
孤岛危机优化设置:http://www.geforce.cn/optimize/optimal- ... tx-450-ops
:cp /etc/skel/.bashrc ~/
PS1="\[\e]2;\u@\H \w\a\e[32;1m\]\T$\[\e[0m\] "
http://cdimage.ubuntu.com/
http://releases.ubuntu.com/
头像
黄美姬
帖子: 8428
注册时间: 2009-10-08 11:15
来自: 大城市铁岭

Re: OpenJDK 6 用文泉驿正黑花掉 只能用文泉驿微米黑?

#6

帖子 黄美姬 » 2010-05-04 22:59

我一般是

代码: 全选

sudo mkdir -p /usr/share/fonts/truetype/arphic/
sudo ln -s /usr/share/fonts/truetype/wqy/wqy-microhei.ttc  /usr/share/fonts/truetype/arphic/uming.ttc
图片
图片
上次由 黄美姬 在 2010-05-04 23:18,总共编辑 1 次。
我们是命运的妓女,它把我们都嫖了

N卡驱动:http://www.nvidia.cn/Download/index.aspx?lang=cn
极品飞车:http://www.geforce.cn/optimize/optimal- ... ts-450-ops
孤岛危机优化设置:http://www.geforce.cn/optimize/optimal- ... tx-450-ops
:cp /etc/skel/.bashrc ~/
PS1="\[\e]2;\u@\H \w\a\e[32;1m\]\T$\[\e[0m\] "
http://cdimage.ubuntu.com/
http://releases.ubuntu.com/
头像
黄美姬
帖子: 8428
注册时间: 2009-10-08 11:15
来自: 大城市铁岭

Re: OpenJDK 6 用文泉驿正黑花掉 只能用文泉驿微米黑?

#7

帖子 黄美姬 » 2010-05-04 23:12

听说JAVA官方已经没人维护了,不知是不是与此有关,所以用open
我们是命运的妓女,它把我们都嫖了

N卡驱动:http://www.nvidia.cn/Download/index.aspx?lang=cn
极品飞车:http://www.geforce.cn/optimize/optimal- ... ts-450-ops
孤岛危机优化设置:http://www.geforce.cn/optimize/optimal- ... tx-450-ops
:cp /etc/skel/.bashrc ~/
PS1="\[\e]2;\u@\H \w\a\e[32;1m\]\T$\[\e[0m\] "
http://cdimage.ubuntu.com/
http://releases.ubuntu.com/
EpsilonY
帖子: 31
注册时间: 2007-06-19 22:39
联系:

Re: OpenJDK 6 用文泉驿正黑花掉 只能用文泉驿微米黑?

#8

帖子 EpsilonY » 2010-05-05 9:49

楼上的,感谢你的回复。
不过SunJDK的中文问题与OpenJDK的不太一样,你给的链接是解决SunJDK下的中文问题的。
其实我更想知道的是,这个中文显示“变花”(注意,不是变方框)的问题出在哪里。
“变花”是ubuntu的打包维护的BUG?
还是这是一个OpenJDK项目上的BUG?
还是这只是一个设置的问题?

还有可能是文泉驿正黑与uming的问题 :em20

OpenJDK lucid deb安装包中fontconfig.properties文件的BUG有人提交过么?是不是因为开源协议的问题,OpenJDK包的修改很困难?

PS:
对这个问题,不管fontconfig.properties的方法是:

代码: 全选

env _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on' java somthing
或者是在/etc/profile中加一行
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on' 
OnFootBuG
帖子: 29
注册时间: 2008-11-02 12:45

Re: OpenJDK 6 用文泉驿正黑花掉 只能用文泉驿微米黑?

#9

帖子 OnFootBuG » 2010-05-21 10:10

关注一下,碰到同样的问题了。
头像
iwanderer
帖子: 103
注册时间: 2009-01-15 20:19

Re: OpenJDK 6 用文泉驿正黑花掉 只能用文泉驿微米黑?

#10

帖子 iwanderer » 2010-05-21 16:04

Mark,按照修改,中文显示正常~~
多谢~~ :em11
头像
shinery
帖子: 1378
注册时间: 2009-07-22 22:23

Re: OpenJDK 6 用文泉驿正黑花掉 只能用文泉驿微米黑?

#11

帖子 shinery » 2010-05-31 11:29

好像还是搞不定
愿扣上你双手,至繁华浪处到沙丘。
taowang
帖子: 7
注册时间: 2010-06-07 7:48
系统: Ubuntu 14.04

Re: OpenJDK 6 用文泉驿正黑花掉 只能用文泉驿微米黑?

#12

帖子 taowang » 2010-06-07 8:06

根据 EpsilonY 给出的信息,我成功的解决掉了字体花掉的问题。谢谢楼主。

EpsilonY 给出的方案可以工作,但是有些修改是不对的,比如,不应该把allfonts.uming*都设置为微米黑,从逻辑上不对。应该的操作是修改search sequence来让微米黑在靠前的位置。这个Bug已经提交给Ubuntu了,请见:https://bugs.launchpad.net/ubuntu/+sour ... bug/472845

可能是大家不经常去更新这个Bug,所以没有太引起关注。我刚刚提交了一个补丁使用微米黑来修复这个问题:http://launchpadlibrarian.net/49788882/ ... ties.patch

代码: 全选

--- fontconfig.properties.orig	2010-06-07 08:15:36.484401181 +1000
+++ fontconfig.properties	2010-06-07 08:46:06.680409922 +1000
@@ -37,6 +37,7 @@
 #allfonts.uminghk.motif=AR PL UMing HK
 allfonts.umingtw=AR PL UMing TW
 #allfonts.umingtw.motif=AR PL UMing TW
+allfonts.wqy-microhei=WenQuanYi Micro Hei
 allfonts.wqy-zenhei=WenQuanYi Zen Hei
 #allfonts.wqy-zenhei.motif=WenQuanYi Zen Hei
 allfonts.shanheisun=AR PL ShanHeiSun Uni
@@ -257,15 +258,15 @@
 # Search Sequences
 
 sequence.allfonts=latin-1
-sequence.allfonts.GB18030=latin-1,umingcn,shanheisun,wqy-zenhei
-sequence.allfonts.GB2312=latin-1,umingcn,shanheisun,wqy-zenhei
-sequence.allfonts.GBK=latin-1,umingcn,shanheisun,wqy-zenhei
+sequence.allfonts.GB18030=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
+sequence.allfonts.GB2312=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
+sequence.allfonts.GBK=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
 sequence.allfonts.x-euc-jp-linux=latin-1,japanese-vlgothic,japanese-sazanami,japanese-kochi
 sequence.allfonts.EUC-KR=latin-1,korean-un,korean-baekmuk
-sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-zenhei
-sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-zenhei
+sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-microhei,wqy-zenhei
+sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-microhei,wqy-zenhei
 #sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
-sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
+sequence.fallback=wqy-microhei,uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
 
 # Exclusion Ranges
 
@@ -293,9 +294,10 @@
 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.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/truetype/arphic/uming.ttc
 
-filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf
+filename.WenQuanYi_Micro_Hei=/usr/share/fonts/truetype/wqy/wqy-microhei.ttc
+filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc
 filename.Baekmuk_Batang=/usr/share/fonts/truetype/baekmuk/batang.ttf
 filename.UnBatang=/usr/share/fonts/truetype/unfonts/UnBatang.ttf
 filename.UnBatang_Bold=/usr/share/fonts/truetype/unfonts/UnBatangBold.ttf
@@ -339,6 +341,7 @@
 awtfontpath.uminghk=/usr/share/fonts/truetype/arphic
 awtfontpath.umingtw=/usr/share/fonts/truetype/arphic
 awtfontpath.shanheisun=/usr/share/fonts/truetype/arphic
+awtfontpath.wqy-microhei=/usr/share/fonts/truetype/wqy
 awtfontpath.wqy-zenhei=/usr/share/fonts/truetype/wqy
 awtfontpath.japanese-kochi=/usr/share/fonts/truetype/kochi
 awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/sazanami
关于EpsilonY提到的文字有彩色像素的问题,是由于很多java程序默认没有使用防锯齿特性。可以使用楼主提到的运行时添加参数的办法,也可以一劳永逸的创建 /etc/profile.d/java_option.sh文件,并且在其中中添加如下的行:

代码: 全选

export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true"
这样,系统范围内都会对Java启用防锯齿特性。需要注意的是,改动后,需要重新登录Ubuntu才能够生效。
头像
ShianZong
帖子: 9
注册时间: 2008-11-30 13:38

Re: OpenJDK 6 用文泉驿正黑花掉 只能用文泉驿微米黑?

#13

帖子 ShianZong » 2010-06-16 21:47

taowang 写了:根据 EpsilonY 给出的信息,我成功的解决掉了字体花掉的问题。谢谢楼主。

EpsilonY 给出的方案可以工作,但是有些修改是不对的,比如,不应该把allfonts.uming*都设置为微米黑,从逻辑上不对。应该的操作是修改search sequence来让微米黑在靠前的位置。这个Bug已经提交给Ubuntu了,请见:https://bugs.launchpad.net/ubuntu/+sour ... bug/472845

可能是大家不经常去更新这个Bug,所以没有太引起关注。我刚刚提交了一个补丁使用微米黑来修复这个问题:http://launchpadlibrarian.net/49788882/ ... ties.patch

代码: 全选

--- fontconfig.properties.orig	2010-06-07 08:15:36.484401181 +1000
+++ fontconfig.properties	2010-06-07 08:46:06.680409922 +1000
@@ -37,6 +37,7 @@
 #allfonts.uminghk.motif=AR PL UMing HK
 allfonts.umingtw=AR PL UMing TW
 #allfonts.umingtw.motif=AR PL UMing TW
+allfonts.wqy-microhei=WenQuanYi Micro Hei
 allfonts.wqy-zenhei=WenQuanYi Zen Hei
 #allfonts.wqy-zenhei.motif=WenQuanYi Zen Hei
 allfonts.shanheisun=AR PL ShanHeiSun Uni
@@ -257,15 +258,15 @@
 # Search Sequences
 
 sequence.allfonts=latin-1
-sequence.allfonts.GB18030=latin-1,umingcn,shanheisun,wqy-zenhei
-sequence.allfonts.GB2312=latin-1,umingcn,shanheisun,wqy-zenhei
-sequence.allfonts.GBK=latin-1,umingcn,shanheisun,wqy-zenhei
+sequence.allfonts.GB18030=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
+sequence.allfonts.GB2312=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
+sequence.allfonts.GBK=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
 sequence.allfonts.x-euc-jp-linux=latin-1,japanese-vlgothic,japanese-sazanami,japanese-kochi
 sequence.allfonts.EUC-KR=latin-1,korean-un,korean-baekmuk
-sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-zenhei
-sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-zenhei
+sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-microhei,wqy-zenhei
+sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-microhei,wqy-zenhei
 #sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
-sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
+sequence.fallback=wqy-microhei,uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
 
 # Exclusion Ranges
 
@@ -293,9 +294,10 @@
 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.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/truetype/arphic/uming.ttc
 
-filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf
+filename.WenQuanYi_Micro_Hei=/usr/share/fonts/truetype/wqy/wqy-microhei.ttc
+filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc
 filename.Baekmuk_Batang=/usr/share/fonts/truetype/baekmuk/batang.ttf
 filename.UnBatang=/usr/share/fonts/truetype/unfonts/UnBatang.ttf
 filename.UnBatang_Bold=/usr/share/fonts/truetype/unfonts/UnBatangBold.ttf
@@ -339,6 +341,7 @@
 awtfontpath.uminghk=/usr/share/fonts/truetype/arphic
 awtfontpath.umingtw=/usr/share/fonts/truetype/arphic
 awtfontpath.shanheisun=/usr/share/fonts/truetype/arphic
+awtfontpath.wqy-microhei=/usr/share/fonts/truetype/wqy
 awtfontpath.wqy-zenhei=/usr/share/fonts/truetype/wqy
 awtfontpath.japanese-kochi=/usr/share/fonts/truetype/kochi
 awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/sazanami
关于EpsilonY提到的文字有彩色像素的问题,是由于很多java程序默认没有使用防锯齿特性。可以使用楼主提到的运行时添加参数的办法,也可以一劳永逸的创建 /etc/profile.d/java_option.sh文件,并且在其中中添加如下的行:

代码: 全选

export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true"
这样,系统范围内都会对Java启用防锯齿特性。需要注意的是,改动后,需要重新登录Ubuntu才能够生效。
这个贴最牛,果然能一劳永逸! :em11
回复