【已解决】CentOS下运行Java代码使用Font.java类生成中文名称首字头像出现乱码问题

文章目录

  • 问题介绍
  • 解决方案
    • 首先检查一下是否存在字体库了
    • 安装 字体库
    • 安装更新字体命令
    • 添加中文字体
    • 重新建立字体索引&更新缓存
    • 查看字体是否安装成功,如第一步操作显示

问题介绍

【已解决】CentOS下运行Java代码使用Font.java类生成中文名称首字头像出现乱码问题_第1张图片如上述代码,我想代码给用户生成一个默认头像,这个头像就是用户中文名称的首字,如下所示
【已解决】CentOS下运行Java代码使用Font.java类生成中文名称首字头像出现乱码问题_第2张图片
本来本地跑是没问题(本地是Window环境)但是上线运行代码(Linux/CentOS)头像文件是可以生成 ,但是变成了这样
【已解决】CentOS下运行Java代码使用Font.java类生成中文名称首字头像出现乱码问题_第3张图片
其实我大概猜到了是Linux没有中文字体库导致的乱码,那么问题改如何解决了

解决方案

首先检查一下是否存在字体库了

# 一般情况是肯定没装
fc-list :lang=zh

如果安装过,则会显示
-【已解决】CentOS下运行Java代码使用Font.java类生成中文名称首字头像出现乱码问题_第4张图片
出现这两个字体才算是有中文字体,可以忽略前面的目录

安装 字体库

yum install fontconfig -y 

安装更新字体命令

yum install mkfontscale -y

添加中文字体

# 1、创建存放中文字体的目录
mkdir /usr/share/fonts/chinese
# 2、切换到这个目录下面 
cd /usr/share/fonts/chinese
# 3、上传window系统的字体库,在C:\Windows\Fonts\ 下面,在window目录旁白你的检索栏中亿次输入宋体,黑体两个检索词

【已解决】CentOS下运行Java代码使用Font.java类生成中文名称首字头像出现乱码问题_第5张图片
【已解决】CentOS下运行Java代码使用Font.java类生成中文名称首字头像出现乱码问题_第6张图片

# 4、将上图两份字体文件上传到第一步创建的目录下面 ,如下图所示
# 5、Linux新建的字体目录赋权
chmod -R 755 /usr/share/fonts/chinese/

【已解决】CentOS下运行Java代码使用Font.java类生成中文名称首字头像出现乱码问题_第7张图片

重新建立字体索引&更新缓存

# 创建可扩展字体文件的索引
mkfontscale
# 创建字体文件的索引
mkfontdir
# 创建字体信息缓存文件
fc-cache

查看字体是否安装成功,如第一步操作显示

你可能感兴趣的:(Java,SE/EE/ME,Linux,操作系统,centos,linux,运维)