关于linux服务器上生成的图片中文字为的乱码问题

一、功能描述

         linux服务器后端生成图表(使用了canvas和echarts),并将生成的图片发送到企业微信群里。

 二、出现的问题

        生成的图表中文展示不出来,是乱码。错误图表展示如下:

关于linux服务器上生成的图片中文字为的乱码问题_第1张图片三、 文字乱码出现的原因

        linux服务器没有对应的文字。

四、 解决办法

        在服务器安装对应文字。我的具体操作步骤如下:

1、找到想要的字体:

      在本地windows系统下文字中选一个自己想要的文字(我选了微软雅黑)。

       windows文字保存路径:C:\Windows\Fonts。

关于linux服务器上生成的图片中文字为的乱码问题_第2张图片

         自己建一个文件夹(myFont),把想要的字体拖进去,(可以看到拖进去之后可以看到三个文件)。

关于linux服务器上生成的图片中文字为的乱码问题_第3张图片

2、将字体放到服务器上:

        把这个文件夹(myFont)放到linux服务器上的 /usr/share/fonts 路径下(我是用拖动的操作把文件夹放进去的),如果不存在这个路径,可以自主创建目录。

关于linux服务器上生成的图片中文字为的乱码问题_第4张图片

 

        注意:在创建目录,或者将文字放到目录下可能会出现没有权限的问题。这就需要在root角色下给相关文件夹赋予最高的权限:chmod -R 777 /usr/share/fonts/

        把字体放到 /usr/share/fonts 文件夹下之后继续下面的步骤:

3、执行相关命令,安装放进去的字体。

        (1)到 /usr/share/fonts 目录下:cd  /usr/share/fonts。

        (2)执行 mkfontscale 命令。执行这个命令有可能报错:not fount,可以根据提示的命令安装mkfontscale ,比如我安装的时候就提示我:

Command 'mkfontscale' not found, but can be installed with:apt install xfonts-utils
所以我就运行命令:apt install xfonts-utils 安装。

关于linux服务器上生成的图片中文字为的乱码问题_第5张图片

安装成功后,继续再执行 mkfontscale 命令。

 (3)再执行mkfontdir(。。。。。我好像没有执行这一步。)

   (4)执行:fc-cache -fv。执行这个命令也可能报错说弄not found。也跟上面一样继续根据提示命令安装。

我的错误提示信息:

Command 'fc-cache' not found, but can be installed with:apt install fontconfig
所以我就运行:apt install fontconfig。

关于linux服务器上生成的图片中文字为的乱码问题_第6张图片

        安装成功后,再次运行fc-cache -fv。

       最后:fc-cache -fv运行成功之后按理说放进去的字体就安装成功了。

        用:fc-list :lang=zh可以查看一下你安装的字体。

        用:fc-list 命令查看linux的所有字体

五、结果

        字体安装之后,重新运行了程序,可以看到图片上已经展示中文了。

关于linux服务器上生成的图片中文字为的乱码问题_第7张图片

 以上问题的解决,参考原文:https://blog.csdn.net/qq_39900031/article/details/129628387

---------------------------------菜鸟一只,有什么不妥之处,望指教! ----------------------------------

你可能感兴趣的:(前端,服务器)