一、功能描述
linux服务器后端生成图表(使用了canvas和echarts),并将生成的图片发送到企业微信群里。
二、出现的问题
生成的图表中文展示不出来,是乱码。错误图表展示如下:
三、 文字乱码出现的原因
linux服务器没有对应的文字。
四、 解决办法
在服务器安装对应文字。我的具体操作步骤如下:
1、找到想要的字体:
在本地windows系统下文字中选一个自己想要的文字(我选了微软雅黑)。
windows文字保存路径:C:\Windows\Fonts。
自己建一个文件夹(myFont),把想要的字体拖进去,(可以看到拖进去之后可以看到三个文件)。
2、将字体放到服务器上:
把这个文件夹(myFont)放到linux服务器上的 /usr/share/fonts 路径下(我是用拖动的操作把文件夹放进去的)
,如果不存在这个路径,可以自主创建目录。
注意:在创建目录,或者将文字放到目录下可能会出现没有权限的问题。这就需要在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 安装。
安装成功后,继续再执行 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。
安装成功后,再次运行fc-cache -fv。
最后:fc-cache -fv运行成功之后按理说放进去的字体就安装成功了。
用:fc-list :lang=zh可以查看一下你安装的字体。
用:fc-list
命令查看linux的所有字体
五、结果
字体安装之后,重新运行了程序,可以看到图片上已经展示中文了。
以上问题的解决,参考原文:https://blog.csdn.net/qq_39900031/article/details/129628387
---------------------------------菜鸟一只,有什么不妥之处,望指教! ----------------------------------