Topic: JBuilder,IdeaJ 等Java开发工具中文字体显示的问题

  Print this page

1.JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 Copy to clipboard
Posted by: hawker
Posted on: 2002-12-10 15:14

JBuilder,IdeaJ 等Java开发工具中文字体显示的问题
我们使用JBuilder,IdeaJ和其他的集成开发环境,都遇到过中文字体显示的问题,有的人将字号设置成奇数,有的人将字体进行修改,都不能解决根本问题。通过仔细研究JRE中关于中文字体配置文件,发现这些问题的关键是这些工具所依赖的JRE中关于中文字体设计的配置文件存在问题,造成依赖它的应用程序显示不正确。

在Windows 2000/xp系统中,宋体的字体名称是simsun.ttc,可是在font.properties.zh中关于宋体的字体文件名称却是simsun.ttf,这种配置在windows 98/me下面没有问题,但是在2000/xp下面,中文的文字就会显示为方块了。

在font.properties.zh中,逻辑字体的斜体,加重所对应的实际字体在font.properties.zh中也没用正确配置,造成我们在java程序中进行编辑时,插入的实际位置和光标的位置不一致,这是我们只能将IDE工具的字体设置成宋体,并且将字体字号设置成奇数进行解决(Borland的技术攻势就推荐这种方法),在IdeaJ中,我们将所有的字体加重属性去掉,也能解决问题。但是这种解决方法不能根本解决问题,当工具出现新的版本时,还可能出现新的问题。

最好的解决方法是修改font.properties.zh文件,正确配置相关平台的字体的逻辑字体和物理字体的对应关系。下面是我修改的font.properties.zh文件,将它使用文本编辑程序保存到IDE工具使用的JRE的lib目录,中文显示问题可以解决,这个文件在Windows 2000 , JDK 1.4.1_01, JBuilder 7/8, IDEAJ 3.0下测试通过。

# Begin of font.properties.zh
#
#
# @(#)font.properties.zh
# save it to %JRE%/lib/font.properties.zh
#
# @edit by Hakwer hao (hhao99@yahoo.com.cn)
# @ Dec-06-2002
#
# AWT Font default Properties for Chinese Windows
#

dialog.plain.0=Arial,ANSI_CHARSET
dialog.plain.1=\u5b8b\u4f53,GB2312_CHARSET
dialog.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialog.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialog.bold.0=Arial Bold,ANSI_CHARSET
dialog.bold.1=\u5b8b\u4f53,GB2312_CHARSET
dialog.bold.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialog.bold.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialog.italic.0=Arial Italic,ANSI_CHARSET
dialog.italic.1=\u5b8b\u4f53,GB2312_CHARSET
dialog.italic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialog.italic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialog.bolditalic.0=Arial Bold Italic,ANSI_CHARSET
dialog.bolditalic.1=\u5b8b\u4f53,GB2312_CHARSET
dialog.bolditalic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialog.bolditalic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialoginput.plain.0=Courier New,ANSI_CHARSET
dialoginput.plain.1=\u5b8b\u4f53,GB2312_CHARSET
dialoginput.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialoginput.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialoginput.bold.0=Courier New Bold,ANSI_CHARSET
dialoginput.bold.1=\u5b8b\u4f53,GB2312_CHARSET
dialoginput.bold.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialoginput.bold.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialoginput.italic.0=Courier New Italic,ANSI_CHARSET
dialoginput.italic.1=\u5b8b\u4f53,GB2312_CHARSET
dialoginput.italic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialoginput.italic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialoginput.bolditalic.0=Courier New Bold Italic,ANSI_CHARSET
dialoginput.bolditalic.1=\u5b8b\u4f53,GB2312_CHARSET
dialoginput.bolditalic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialoginput.bolditalic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

serif.plain.0=Times New Roman,ANSI_CHARSET
serif.plain.1=\u5b8b\u4f53,GB2312_CHARSET
serif.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
serif.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

serif.bold.0=Times New Roman Bold,ANSI_CHARSET
serif.bold.1=\u5b8b\u4f53,GB2312_CHARSET
serif.bold.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
serif.bold.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

serif.italic.0=Times New Roman Italic,ANSI_CHARSET
serif.italic.1=\u5b8b\u4f53,GB2312_CHARSET
serif.italic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
serif.italic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

serif.bolditalic.0=Times New Roman Bold Italic,ANSI_CHARSET
serif.bolditalic.1=\u5b8b\u4f53,GB2312_CHARSET
serif.bolditalic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
serif.bolditalic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

sansserif.plain.0=Arial,ANSI_CHARSET
sansserif.plain.1=\u5b8b\u4f53,GB2312_CHARSET
sansserif.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
sansserif.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

sansserif.bold.0=Arial Bold,ANSI_CHARSET
sansserif.bold.1=\u5b8b\u4f53,GB2312_CHARSET
sansserif.bold.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
sansserif.bold.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

sansserif.italic.0=Arial Italic,ANSI_CHARSET
sansserif.italic.1=\u5b8b\u4f53,GB2312_CHARSET
sansserif.italic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
sansserif.italic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

sansserif.bolditalic.0=Arial Bold Italic,ANSI_CHARSET
sansserif.bolditalic.1=\u5b8b\u4f53,GB2312_CHARSET
sansserif.bolditalic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
sansserif.bolditalic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

monospaced.plain.0=Courier New,GB2312_CHARSET
monospaced.plain.1=\u5b8b\u4f53,GB2312_CHARSET
monospaced.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
monospaced.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

monospaced.bold.0=Courier New Bold,GB2312_CHARSET
monospaced.bold.1=\u5b8b\u4f53,GB2312_CHARSET
monospaced.bold.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
monospaced.bold.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

monospaced.italic.0=Courier New Italic,GB2312_CHARSET
monospaced.italic.1=\u5b8b\u4f53,GB2312_CHARSET
monospaced.italic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
monospaced.italic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

monospaced.bolditalic.0=Courier New Bold Italic,GB2312_CHARSET
monospaced.bolditalic.1=\u5b8b\u4f53,GB2312_CHARSET
monospaced.bolditalic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
monospaced.bolditalic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

# name aliases
#
alias.timesroman=serif
alias.helvetica=sansserif
alias.courier=monospaced

# for backward compatibility
#timesroman.0=Times New Roman,ANSI_CHARSET
#helvetica.0=Arial,ANSI_CHARSET
#courier.0=Courier New,ANSI_CHARSET
zapfdingbats.0=WingDings,SYMBOL_CHARSET

# font filenames for reduced initialization time
#
filename.\u5b8b\u4f53=SIMSUN.TTC

filename.Arial=ARIAL.TTF
filename.Arial_Bold=ARIALBD.TTF
filename.Arial_Italic=ARIALI.TTF
filename.Arial_Bold_Italic=ARIALBI.TTF

filename.Courier_New=COUR.TTF
filename.Courier_New_Bold=COURBD.TTF
filename.Courier_New_Italic=COURI.TTF
filename.Courier_New_Bold_Italic=COURBI.TTF

filename.Times_New_Roman=TIMES.TTF
filename.Times_New_Roman_Bold=TIMESBD.TTF
filename.Times_New_Roman_Italic=TIMESI.TTF
filename.Times_New_Roman_Bold_Italic=TIMESBI.TTF

filename.WingDings=WINGDING.TTF
filename.Symbol=SYMBOL.TTF

# Default font definition
#
default.char=2751

# Static FontCharset info.
#
#fontcharset.dialog.0=sun.io.CharToByteCp1252
fontcharset.dialog.1=sun.io.CharToByteGBK
fontcharset.dialog.2=sun.awt.windows.CharToByteWingDings
fontcharset.dialog.3=sun.awt.CharToByteSymbol

#fontcharset.dialoginput.0=sun.io.CharToByteCp1252
fontcharset.dialoginput.1=sun.io.CharToByteGBK
fontcharset.dialoginput.2=sun.awt.windows.CharToByteWingDings
fontcharset.dialoginput.3=sun.awt.CharToByteSymbol

#fontcharset.serif.0=sun.io.CharToByteCp1252
fontcharset.serif.1=sun.io.CharToByteGBK
fontcharset.serif.2=sun.awt.windows.CharToByteWingDings
fontcharset.serif.3=sun.awt.CharToByteSymbol

#fontcharset.sansserif.0=sun.io.CharToByteCp1252
fontcharset.sansserif.1=sun.io.CharToByteGBK
fontcharset.sansserif.2=sun.awt.windows.CharToByteWingDings
fontcharset.sansserif.3=sun.awt.CharToByteSymbol

#fontcharset.monospaced.0=sun.io.CharToByteCp1252
fontcharset.monospaced.1=sun.io.CharToByteGBK
fontcharset.monospaced.2=sun.awt.windows.CharToByteWingDings
fontcharset.monospaced.3=sun.awt.CharToByteSymbol

# Exclusion Range info.
#
exclusion.dialog.plain.0=00a0-f8ff
exclusion.dialog.italic.0=00a0-f8ff
exclusion.dialog.bold.0=00a0-f8ff
exclusion.dialog.bolditalic.0=00a0-f8ff

exclusion.dialoginput.plain.0=00a0-f8ff
exclusion.dialoginput.italic.0=00a0-f8ff
exclusion.dialoginput.bold.0=00a0-f8ff
exclusion.dialoginput.bolditalic.0=00a0-f8ff

exclusion.serif.plain.0=00a0-f8ff
exclusion.serif.italic.0=00a0-f8ff
exclusion.serif.bold.0=00a0-f8ff
exclusion.serif.bolditalic.0=00a0-f8ff

exclusion.sansserif.plain.0=00a0-f8ff
exclusion.sansserif.italic.0=00a0-f8ff
exclusion.sansserif.bold.0=00a0-f8ff
exclusion.sansserif.bolditalic.0=00a0-f8ff

exclusion.monospaced.plain.0=00a0-f8ff
exclusion.monospaced.italic.0=00a0-f8ff
exclusion.monospaced.bold.0=00a0-f8ff
exclusion.monospaced.bolditalic.0=00a0-f8ff

# charset for text input
#
inputtextcharset=GB2312_CHARSET

#
# @ end of font.properties.zh
#

font.properties.zh (7.13k)

2.错误 [Re: hawker] Copy to clipboard
Posted by: encamp
Posted on: 2002-12-10 16:44

我的IDE本来是好的,用了你的文件结果汉字都变成方框了

3.你的操作系统是什么版本的?win98/me的话不需要这个文件 [Re: hawker] Copy to clipboard
Posted by: hawker
Posted on: 2002-12-10 16:54


4.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: Biubiu
Posted on: 2002-12-10 17:44

使用任何ide都不用修改这个文件。jre的缺省设置就是对的。关键是你要选择正确的字体。只要你的区域设置是中文,任何逻辑字体或者中文字体都可以正确的显示中文。必要时,把斜体和粗体的设置去掉。

为什么总是有人在这个问题上纠缠不清呢?

5.JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: hawker
Posted on: 2002-12-10 18:36

在windows 98/me下,JRE的字体配置文件不存在什么问题,但是在windows 2000/xp下,不修改这个文件中文肯定是不能正确显示的,除非你是用的英文操作环境。

6.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: SimonLei
Posted on: 2002-12-10 20:05

hawker wrote:
在windows 98/me下,JRE的字体配置文件不存在什么问题,但是在windows 2000/xp下,不修改这个文件中文肯定是不能正确显示的,除非你是用的英文操作环境。


呵呵,我用的就是win 2000 中文版。只是简单的把bold去掉就ok了。

7.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: Biubiu
Posted on: 2002-12-10 21:21

hawker wrote:
在windows 98/me下,JRE的字体配置文件不存在什么问题,但是在windows 2000/xp下,不修改这个文件中文肯定是不能正确显示的,除非你是用的英文操作环境。


2000和xp我从来都是用英文的。可是这两个os中英文应该只是界面的区别,只要保证区域和语言设置正确就可以了。改天找一台中文的试试看。

8.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: Biubiu] Copy to clipboard
Posted by: flyinair
Posted on: 2002-12-11 09:55

you are right!!!!!
英文win2000,location 设为中文,Intellij IDEA无论中文输入还是显示,绝对不是问题。 出了问题,就是自己设置的问题。

Biubiu wrote:
使用任何ide都不用修改这个文件。jre的缺省设置就是对的。关键是你要选择正确的字体。只要你的区域设置是中文,任何逻辑字体或者中文字体都可以正确的显示中文。必要时,把斜体和粗体的设置去掉。
为什么总是有人在这个问题上纠缠不清呢?

9.win2000中文 [Re: hawker] Copy to clipboard
Posted by: encamp
Posted on: 2002-12-11 11:35

我用win2000中文,把bold去掉就ok了

10.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: cckoan
Posted on: 2003-01-15 09:09

font.properties.zh修改的方法适用于JBUILDER7,在IDEA和JBUILDER8下,汉字变方框。我很想知道hawker 兄是如何测试通过的?JDK 1.3.1系列中,国际化字符集通过jre\lib\i18n.jar进行解析处理。JDK1.4.1系列中,国际化通过jre\lib\charsets.jar进行。

11.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: cckoan] Copy to clipboard
Posted by: coder
Posted on: 2003-01-15 11:37

这是我根据前面所叙作的修改,for jb8。
不会再有方块

font.properties.zh (5.91k)

12.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: shsen
Posted on: 2003-01-15 17:34

jb8的我不知道,但我知道我今天装的idea中文就是显示成方块。是不是只能用这个文件解决?还是有更方便的方法?

13.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: sanigo
Posted on: 2003-01-17 08:57

我觉得这样改没什么道理。
只要把字体改成"Courier New",就可以得到一样的结果

14.谢谢 hawker,至少JBuilder7E中是可以解决问题的 [Re: hawker] Copy to clipboard
Posted by: Rainwolf
Posted on: 2003-01-17 12:18

我是新手,正为JBuilder7中光标位置错乱烦恼不已,装了JB7又删掉,再装JB8也一样,刚想放弃JB使用写字板就得到了Hawker的这个字体文件,非常感谢,可以重回JB怀抱了。:)CoolCoolCool

15.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: scottding
Posted on: 2003-01-17 12:46

修改的方法其实有很多。。在这个版面已经出现了很多的解决办法。你可以看看。

16.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: sanigo] Copy to clipboard
Posted by: stone7
Posted on: 2003-01-23 17:27

sanigo wrote:
我觉得这样改没什么道理。
只要把字体改成"Courier New",就可以得到一样的结果

是啊,好像改一下字体就好了啊

17.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: Rainwolf
Posted on: 2003-02-16 11:35

请问在哪里改变字体?
是在菜单:tools/Editor Option/Display中吗?为什么我的JBuilder8只要进入这个功能的时侯就会出现字体装载错误而且马上关闭JBuilder8?
是因为我安装了太多的字体?还是因为字体文件有错误?

18.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: chaor
Posted on: 2003-02-19 11:02

我的显示都没有问题,只是jb8无论如何都光标位置不正确

19.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: 平和
Posted on: 2003-02-20 15:02

thank you

20.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: sothis
Posted on: 2003-02-24 14:58

没错,是在这里。
我有时碰到显示JB字体加载时退出就跑到Windows删除“文鼎..."等不常用的字体就可以了。

请问在哪里改变字体?
是在菜单:tools/Editor Option/Display中吗?为什么我的JBuilder8只要进入这个功能的时侯就会出现字体装载错误而且马上关闭JBuilder8?
是因为我安装了太多的字体?还是因为字体文件有错误?

21.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: liufancjsdn
Posted on: 2003-02-26 11:18

我用的是英文Win2000 , Location设为ChinaPRC , Language也设为ChinaPRC
然后安装的是IDEA3.0 , 结果菜单显示都是英文,可是运行File->OpenFile出来的对话框中就都是方框
然后我到Option->IDE Setting->Apperance中把Font改成SimSun就好了
不过英文看上去有点不爽,不知还有没有别的办法

22.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: rilong
Posted on: 2003-03-01 04:18

安装语言包

23.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: lxia
Posted on: 2003-03-01 19:38

将IDEA中的Color&Fonts设置页面中的字体选为Monospaced,IDEA会使用宋体显示中文,另外在各个Font设置页面将bold字体关掉,就会解决显示粗体字光标定位不准的问题。

24.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: magi
Posted on: 2003-03-04 17:15

都显示的很好呀,选择default一切ok,只是idea本身的对话框有些问题

25.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: hawker] Copy to clipboard
Posted by: ccic134302
Posted on: 2003-03-06 14:00

我装了jb7以后,再装weblogic提示错误,啥意思?

26.Re:JBuilder,IdeaJ 等Java开发工具中文字体显示的问题 [Re: liufancjsdn] Copy to clipboard
Posted by: sundayrain88
Posted on: 2003-03-11 15:19

liufancjsdn wrote:
我用的是英文Win2000 , Location设为ChinaPRC , Language也设为ChinaPRC
然后安装的是IDEA3.0 , 结果菜单显示都是英文,可是运行File->OpenFile出来的对话框中就都是方框
然后我到Option->IDE Setting->Apperance中把Font改成SimSun就好了
不过英文看上去有点不爽,不知还有没有别的办法

这个方法是可以的.


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923