NetBeans IDE 7 中使用英文字体中文变方块的解决办法

发现NetBeans IDE 有一点不太好的地方就是,代码高亮那里设置所有语言的默认字体为英文字体后,中文无法显示了(直接显示为方块)。
GOOGLE了下,找到一种解决方案。
经测试,在jre\lib\fonts\目录下面创建fallback目录,并copy一个宋体或者微软雅黑字体到该目录下,这种方法无效。
NB的默认字体为monospaced,我们用就这个来开刀。
Fonts & Colors –》 Syntax 里设置所有语言的字体为 monospaced 14 .

一,windows下面
先确定NB使用的是哪个jre ,在 netbeans.conf 文档中可以看到我使用的是”D:\software\Java\jdk\jre
然后:

1
2
3
cd /d D:\software\Java\jdk\jre\lib
copy fontconfig.properties.src fontconfig.properties
vim fontconfig.properties

修改如下几处,将chinese-ms936映射为微软雅黑字体,将Monospaced逻辑字体的英文映射为Monaco字体:

1
2
3
4
5
6
7
8
allfonts.chinese-ms936=Microsoft Yahei

monospaced.plain.alphabetic=Monaco
monospaced.bold.alphabetic=Monaco Bold
monospaced.italic.alphabetic=Monaco Italic
monospaced.bolditalic.alphabetic=Monaco Bold Italic

sequence.monospaced.GBK=alphabetic,chinese-ms936,dingbats,symbol,chinese-ms936-extb

上面的sequence那里主要是把 alphabetic和chinese-ms936的顺序调换了一下,对于中文字体的搜索顺序是先搜chinese-ms936,而chinese-ms936是用allfonts的雅黑(Microsoft Yahei)来显示英文的,因此,如果不调换这二者的顺序,我们对于monospaced的映射基于上是白忙活了(结果是英文也是用雅黑显示了 :arrow: )。

然后在最后添加:

1
2
3
4
filename.Monaco=MONACO.TTF
filename.Monaco_Bold=MONACO.TTF
filename.Monaco_Italic=MONACO.TTF
filename.Monaco_Bold_Italic=MONACO.TTF

我们在映射逻辑字体到物理字体时,我们给出的物理字体名称Java要知道这个字体对应的是哪个字体文件,因此有必要加上上面四句。

二,linux下面(Archlinux)

1
2
3
cd /opt/java/jre/lib
cp fontconfig.properties.src fontconfig.properties
vim fontconfig.properties

目前我的配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# %W% %E%
#
# Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
#

# Version

version=1

# Component Font Mappings
#allfonts.chinese-cn-iso10646=-arphic-ar pl uming cn-light-r-normal--*-%d-*-*-c-*-iso10646-1
allfonts.chinese-cn-iso10646=-wenquanyi-microhei-medium-r-normal--*-%d-*-*-p-*-iso10646-1
#wqy-microhei.ttc -misc-wenquanyi micro hei-medium-r-normal--0-0-0-0-p-0-

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=-dejavu-dejavu sans mono-medium-r-normal--*-%d-*-*-m-*-iso10646-1
monospaced.bold.latin-1=-dejavu-dejavu sans mono-bold-r-normal--*-%d-*-*-m-*-iso10646-1
monospaced.italic.latin-1=-dejavu-dejavu sans mono-medium-o-normal--*-%d-*-*-m-*-iso10646-1
monospaced.bolditalic.latin-1=-dejavu-dejavu sans mono-bold-o-normal--*-%d-*-*-m-*-iso10646-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.monospaced=latin-1,chinese-cn-iso10646
sequence.allfonts=latin-1
sequence.allfonts.UTF-8.zh.CN=latin-1,chinese-cn-iso10646
sequence.allfonts.UTF-8.en.US=latin-1,chinese-cn-iso10646
#sequence.allfonts.GBK=latin-1,chinese-gbk

# Exclusion Ranges

# Font File Names
filename.-arphic-ar_pl_uming_cn-light-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/TTF/uming.ttc
filename.-wenquanyi-microhei-medium-r-normal--*-%d-*-*-p-*-iso10646-1=/home/admin/.fonts/wqy-microhei.ttc


filename.-dejavu-dejavu_sans_mono-medium-r-normal--*-%d-*-*-m-*-iso10646-1=/usr/share/fonts/TTF/DejaVuSansMono.ttf
filename.-dejavu-dejavu_sans_mono-bold-o-normal--*-%d-*-*-m-*-iso10646-1=/usr/share/fonts/TTF/DejaVuSansMono.ttf
filename.-dejavu-dejavu_sans_mono-medium-o-normal--*-%d-*-*-m-*-iso10646-1=/usr/share/fonts/TTF/DejaVuSansMono-Oblique.ttf
filename.-dejavu-dejavu_sans_mono-bold-r-normal--*-%d-*-*-m-*-iso10646-1=/usr/share/fonts/TTF/DejaVuSansMono-Bold.ttf
filename.-dejavu-dejavu_sans_mono-bold-o-normal--*-%d-*-*-m-*-iso10646-1=/usr/share/fonts/TTF/DejaVuSansMono-BoldOblique.ttf



# AWT X11 font paths

关于字体配置文件,sun ,嗯,不对,应该说oracle :roll: 网站上有说明:http://download.oracle.com/javase/1.5.0/docs/guide/intl/fontconfig.html

本文参考:
Netbeans 6.9 设置中文字体 和英文字体
Java5/6中的字体自定义设置与美化(Linux/Windows)

更多
9 Responses Post a comment
  1. 荒野无灯

    @jdgdf566
    修改是可行的。只要你修改的地方是对的。你要相信计算机是不会骗你的。
    PS:我上面的code block中的 &#xxx; 是由于迁移程序造成显示不正常,请勿照抄。

  2. jdgdf566

    我试过无效啊,求救啊!!折腾了两年多了这个问题!

    netbeans以及PhpStorm等IDE,每次启动的时候,不论是fontconfig.properties.src或fontconfig.properties文件都没有被读取。从操作系统的最后访问时间可以看出来。
    怀疑是软件在开发的时候把fontconfig.properties编译成字节码了,绕过了fontconfig.properties文件。
    JDK、JRE里面的fontconfig.properties和fontconfig.properties.src文件,不要说修改里面的映射,我就是把它删除了,也对netbeans没有什么影响。真是奇怪了。
    现在想要配置NetBeans IDE 7.3.1的源代码的字体,我需要对源代码的【字体和颜色】功能起作用。
    http://bbs.csdn.net/topics/390610317

  3. jdgdf566

    我试过无效啊,求救啊!!折腾了两年多了这个问题!

    netbeans以及PhpStorm等IDE,每次启动的时候,不论是fontconfig.properties.src或fontconfig.properties文件都没有被读取。从操作系统的最后访问时间可以看出来。
    怀疑是软件在开发的时候把fontconfig.properties编译成字节码了,绕过了fontconfig.properties文件。
    JDK、JRE里面的fontconfig.properties和fontconfig.properties.src文件,不要说修改里面的映射,我就是把它删除了,也对netbeans没有什么影响。真是奇怪了。
    现在想要配置NetBeans IDE 7.3.1的源代码的字体,我需要对源代码的【字体和颜色】功能起作用。
    http://bbs.csdn.net/topics/390610317

  4. jdgdf566

    NetBeans IDE 7 中使用英文字体中文变方块的解决办法,我试过无效啊.求救啊!!折腾了一年多了这个问题!
    http://bbs.csdn.net/topics/390610317
    http://t.qq.com/p/t/242566012642640

  5. MangoDowner

    谢谢了,按着做,真改过来了,再也不用看那些小方块了...

  6. 荒野无灯

    嗯,是的,不过我从病毒里把真实文件给取出来了。 :lol:

  7. Soma

    这个压缩包里的keygen是木马病毒,见扫描报告:

  8. loosky

    从了吧,phpDesigner或者Notepad++,随你选。 :lol:

Leave a Reply

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS