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

一、功能描述

         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

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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux生成图片时出现中文乱码问题,可能是由于系统环境或字体配置的原因。可以尝试以下方法解决: 1. 确认系统字体是否包含中文字体。可以通过运行命令 `fc-list :lang=zh` 来查看系统是否安装了中文字体。如果没有安装,可以通过以下命令安装中文字体: ``` sudo apt-get install fonts-arphic-ukai fonts-arphic-uming ``` 2. 设置中文字体为默认字体。在生成图片的代码,设置中文字体为默认字体,例如使用 `PIL` 库时可以使用以下代码: ```python from PIL import ImageFont, ImageDraw, Image # 设置中文字体 font_path = '/usr/share/fonts/truetype/arphic/ukai.ttf' font_size = 12 font = ImageFont.truetype(font_path, font_size) # 在图片上绘制中文文本 image = Image.new("RGB", (width, height), (255, 255, 255)) draw = ImageDraw.Draw(image) draw.text((x, y), "你的中文文本", font=font, fill=(0, 0, 0)) image.save("output.png") ``` 其 `font_path` 是中文字体文件的路径,可以根据实际情况进行调整。 3. 指定字符编码为 UTF-8。在代码,确保使用 UTF-8 编码来表示中文字符,例如使用 Python 时,在文件开头添加以下注释: ```python # -*- coding: UTF-8 -*- ``` 这样可以确保代码中文字符被正确识别和显示。 通过以上方法,你应该能够解决 Linux生成图片中文乱码问题。如果仍然存在问题,你可以提供更多的细节和错误信息,以便我们更好地帮助你解决问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值