phpstorm编辑器是可以正常显示中文的,但hint和部分git操作界面会把中文显示成方块,虽然不影响使用但确实不是很方便使用,这个问题是因为java没有配置正确的逻辑字体造成的,下面介绍下如何改正这个问题。
首先java对debain系的发行版支持的不好,字体有redhat/suse/turbo,但就是没有debain的几个版本,更没有ubuntu。
在 <jvm>/jre/lib目录下有名为 fontconfig.properties的文件,这是java的字体配置文件。
1.首先删掉 fontconfig.properties.bfc
2.复制 fontconfig.properties.src 为 fontconfig.properties文件
3.编辑内容如下
version=1
sequence.allfonts.UTF-8.zh.CN=latin-1,chinese-cn-iso10646
sequence.fallback=chinese-cn-iso10646,lucida
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
sequence.allfonts=latin-1
filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/arphic/uming.ttc
awtfontpath.chinese-cn-iso10646=/usr/share/fonts/truetype/arphic
注意,一定要确认 /usr/share/fonts/truetype/arphic目录确实存在才可以。
改完后重启 phpstorm,写个//TODO 中文,光标挪上去应该能正常显示中文了,如果还是方块,可以继续修改。
打开 File/Settings 找到 Appearance & Behavior/Appearance,Override default fonts by 取消选中,或者把Override default font by 设置成一个中文字体,我选择的是文泉驿正黑。
改过之后中文就正常了。