Centos7安装中文字体

Posted 言成言成啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7安装中文字体相关的知识,希望对你有一定的参考价值。

一、背景

最近一直在重写2021年毕设的前端页面,用vue3+vite实现的响应式布局,目前完成10%。但在部署到Linux上时,遇到了服务端生成的中文验证码混乱的问题,通过远程断点,排除编码的问题,原来是由于Linux没有中文字体导致。

两年前的毕业设计,是想做一个支持动态业务逻辑的签到系统,我随时随地都可以修改业务逻辑,哪怕拉着屎,灵感一来,手机当场修改业务逻辑。由于当时眼界、技术都比较短浅,最终只是做了一个类似于binux/qiandao: 签到,但功能还要更简陋的系统。

能力在一点点进步,系统也在一直迭代,21年的雏形,22年的重写,23年的全部推翻。

结果发现,预期的系统就像现在比较火的工作流引擎或是低代码平台,虽然是简易版。

不得不自恋一下,我真有远见。不过这也说明,创造是由需求推动的。当大众都有这个需求的时候,就是猪都能飞起来的风口了吧。

二、安装中文字体

2.1 验证环境

首先查看服务器是否安装了字体,若没安装,就进行安装

# 验证是否安装
yum info fontconfig
# 若没安装,进行安装
yum -y install fontconfig

2.2 查询字体

查询已有字体

# 查询所有字体
fc-list
# 查询所有字体详细信息
fc-list -v
# 查询所有字体简略信息
fc-list -b
# 查询中文字体
fc-list :lang=zh
# 查询英文字体
fc-list :lang=en

此时系统上,是没有中文字体的。这时候的验证码(使用楷体生成的验证码)是这个样子。

这时候,验证一下楷体,在Linux上使用的字体

for family in 楷体 楷体_GB2312; do   echo -n "$family: ";   fc-match "$family"; done

可以看到,是使用一款英文字体解析的,那肯定不对啊。

2.3 安装字体

2.3.1 上传中文字体

在Win上可以,在Linux不可以。因此Win上是有楷体的,只需要上传至Linux即可。

进入Windows的目录C:\\Windows\\Fonts下,找到楷体(对应的名称是simkai.ttf),然后上传至Linux

Windows想要使用Linux上的命令,可以安装git bash,或者直接使用xftp也可。

我就是喜欢奇技淫巧,没办法,所以用了git bash

mkdir -p /usr/share/fonts/zh

#登录进入sftp。sftp是ssh内含的协议,只要sshd服务器启动了,它就可用
sftp root@10.0.0.10
# 在sftp中执行命令上传
put simkai.ttf /usr/share/fonts/zh

2.3.2 安装并验证字体

进入到Linux系统,再次查询所有字体和中文字体,命令参考2.2。

fc-list :lang=zh

此时如果没有,需要执行以下三个命令刷新缓存

mkfontscale

mkfontdir

fc-cache -fv

再次执行命令,验证安装是否成功。

for family in 楷体 楷体_GB2312; do   echo -n "$family: ";   fc-match "$family"; done

此时,就大功告成了。

三、参考致谢

linux - CentOS7安装中文字体 - 吴尼玛的技术后花园 - SegmentFault 思否

在Centos7.X上安装中文字体及相关配置_centos 安装字体没有mkfontscale 和mkfontdir_路飞onepiece的博客-CSDN博客

以上是关于Centos7安装中文字体的主要内容,如果未能解决你的问题,请参考以下文章

Linux Centos7部署环境安装-CentOS

vmware怎么安装centos7

linux下(centos7)docker安装

Linux Centos7.* Memcached 安装

CentOS7 安装LNMP(Linux+Nginx+MySQL+PHP)

Linux源码安装httpd:Centos7