安装的 Ubuntu 24.04 中总会看到一些中文字符显示错误,如下:
有轻微强迫症的我表示很难受。
为了解决这个问题,需要修改配置文件 /etc/fonts/conf.d/64-language-selector-cjk-prefer.conf
中不同语言字符显示的优先级。
该文件默认内容如下:
<?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></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></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>
JP 代表的是日文字符,SC 代表的是中文简体(Simplified Chinese),HK 代表的是香港。我们需要修改这些语言字符显示的优先级。修改后如下:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig><alias><family>sans-serif</family><prefer><family>Noto Sans CJK SC</family><family>Noto Sans CJK KR</family><family>Noto Sans CJK HK</family><family>Noto Sans CJK TC</family><family>Noto Sans CJK JP</family></prefer></alias><alias><family>serif</family><prefer><family>Noto Serif CJK SC</family><family>Noto Serif CJK KR</family><family>Noto Serif CJK JP</family><family>Noto Serif CJK TC</family></prefer></alias><alias><family>monospace</family><prefer><family>Noto Sans Mono CJK SC</family><family>Noto Sans Mono CJK KR</family><family>Noto Sans Mono CJK HK</family><family>Noto Sans Mono CJK TC</family><family>Noto Sans Mono CJK JP</family></prefer></alias>
</fontconfig>
修改后保存,重新登入系统。
这样就可以正常显示某些字符了。