关于Ubuntu系统汉字“复”“门”等简体中文显示为异体(日文)字形

前言

之前工作中遇到ubuntu后台调用wkhtmltopdf生成PDF文件时,里面的部分中文字体显示异常,例如门、关、复等字字形与规范中文不符。主要原因是 ubuntu 系统自带的 fontconfig 配置语言优先级造成的。原配置文件里面的日文优先级排在中文前面,所以解决办法就是修改配置文件 /etc/fonts/conf.d/64-language-selector-prefer.conf 将优先级改一下即可。
在这里插入图片描述

如下图所示,配置文件里面的 Noto Sans CJK JP(红框) 排在 Noto Sans CJK SC)(椭圆) 前面,所以系统使用字体时优先使用JP字体了。
在这里插入图片描述

解决办法:

# 先备份原文件
sudo cp /etc/fonts/conf.d/64-language-selector-prefer.conf /etc/fonts/conf.d/64-language-selector-prefer_back.conf
# 修改以下配置文件,将 所有 Noto Sans CJK SC 放在 最前面 保存退出即可
sudo vim /etc/fonts/conf.d/64-language-selector-prefer.conf
# 注:不同ubuntu系统版本支持的语言种类有所不一样,但都是将所有 Noto Sans CJK SC 放在 最前面 即可。

下图所示为Ubuntu 16.04(上面截图为Ubuntu 18.04版本)版本修改后的配置文件
在这里插入图片描述

测试:

# 上面修改完成后,更新字体缓存
fc-cache -fv
# 然后执行以下命令检查,如果出现 NotoSansCJK-Regular.ttc: "Noto Sans CJK SC" "Regular" 则表示设置成功:
fc-match -s | grep 'Noto Sans CJK'

在这里插入图片描述
在这里插入图片描述

参考资料:
更多详情可以点击参考 1.2.2.2~~

猜你喜欢

转载自blog.csdn.net/qq_34125713/article/details/128340664