linux中文字体不一致的解决方法

在Linux系统中,由于默认字体不包含中文,复制Windows字体可能导致中文字体显示错乱。解决此问题需要调整字体渲染顺序。在/usr/share/fonts/conf.d/65-nolatin.conf(或类似文件)中,找到非拉丁字体的渲染顺序配置,将所需中文字体移到最前,确保系统优先使用该字体渲染中文。这样可以避免不同字体混合显示的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在使用linux的过程中,由于很多文档中都是用的微软字体,所以通常会把windows的字体安装到linux中以能够正常的显示字体,但是把windows中的字体直接复制到linux中,会出现中文字体不一的现象,不同的字体混在一起。

出现这个问题的原因是因为linux中的默认字体一般是英文字体,没有对应的中文则会按照一定的顺序从已有的中文字体中选择渲染,复制windows的字体后,没有调整原来的渲染顺序,中文字体的选择会错乱,这种情况手动调整中文字体的渲染顺序就可以了。

调整方法

/usr/share/fontsfonfig/中的65nolatin文件中就是在非拉丁该字体的渲染顺序,有的linux发行版可能不是这个名字,找到有nolatin这个的文件就没错,可以看到,把字体分成了几类,有,其中列出字体的顺序为对应类别字体的渲染顺序,把你想要显示的中文字体放到最前面就可以了,系统就会优先用这个来渲染中文,如果这个字体没有对应的字,就会按照顺序找其它的字体。如果没有你的字体,可以按照文件原来的格式手动添加进去,注意添加的字体要是你安装过的字体,就可以了。

详解

65-nolatin.conf
我用的是manjaro,看到这个文件65-nolatin.conf是打开是这样的, 不同的linux发行版这个文件名不一定一样,主要看nolatin这个词,是非拉丁文的意思,一般在linux中默认的各种字体基本都是英文字体,当没有对应的中文字体时就是按照这个文件里面的顺序去寻找字体来渲染,可以看到,在这个文件中字体被分成了好几类,每类都有自己的沉浸顺序如

等宽
如一般在终端中用的是等宽字体,它默认字体在没有对应中文字体的时候就会到这个monospace中按从上到下的顺序去选择字体,直到遇到的字体有这个字,就用这个字体来渲染这个字。
所以,把你想让显示的中文字体往前放,可以放在第一个就可以了,这个第一指的是每个类的第一,如果都想用这个字体要把每个类的第一个都设为添加上这个字体 。

结语

在linux中,一般中文字体所带的英文字体都不太好看,为了取得较好的字体效果,默认字体一般设为英文字体,中文字体再到这个文件中去设置,把想用的字体放在就前面可以了。
虽然这个问题很好解决,但我在网上查找了不少,没找到的详细的解决方法,于是记录下来,以供它从参考。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值