linux字体异常问题

Ubuntu上’门’ ‘复’ 字显示不正确,现象如下:
ex

1,字形优先级

这个其实是字体没有cover文字的编码时,优先fallback到其他语言中的字形了。
可以查看优先级:

1
sudo vim /etc/fonts/conf.d/64-language-selector-prefer.conf

可以看到,优先回落到了JP,也就是日文字形,将SC挪到第一位即可。

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
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>Noto Sans CJK JP</family>
<family>Noto Sans CJK KR</family>
<family>Noto Sans CJK SC</family>
<family>Noto Sans CJK TC</family>
<family>Noto Sans CJK HK</family>
<family>Lohit Devanagari</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Noto Serif CJK JP</family>
<family>Noto Serif CJK KR</family>
<family>Noto Serif CJK SC</family>
<family>Noto Serif CJK TC</family>
<family>Lohit Devanagari</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Noto Sans Mono CJK JP</family>
<family>Noto Sans Mono CJK KR</family>
<family>Noto Sans Mono CJK SC</family>
<family>Noto Sans Mono CJK TC</family>
<family>Noto Sans Mono CJK HK</family>
</prefer>
</alias>
</fontconfig>

2,应用自定义字体

以上方式无法解决chrome等自定义字体的浏览器的问题,此时需要你更换中文字体,可以在方正字体库里下载字体:http://www.foundertype.com/