专栏首页SAnBlog解决Linux html生成图片中文乱码

解决Linux html生成图片中文乱码

前言

最近搞了一个需求,功能大概是通过html生成图片。功能是挺简单的吧?

本地测试没什么问题,但是发服务器上,发现html生成的imgae中文乱码。

解决过程

首先google了一圈

发现这个框架比较冷萌,几乎没什么可参考的资料,但是可以搜索同功能的框架(Html2Imgage),应该会出现同样的问题,因为本地没问题,所以可以确定是环境问题。

类似功能的框架,也出现了中文乱码问题,但是图片上渲染的中文是框框的形式。

所以我们也可以排除掉乱码问题,因为乱码应该会展示字体,只是我们读不懂,这个框框说明缺少字库!

google一圈发现的却缺少了中文字体库,生成图片缺少什么字体就全部准备好。

像我这里缺少微软雅黑,宋体等。字体可以到系统C:\WINDOWS\Fonts\下获取,记得字体格式是ttf的,win10是没有的。xp win7有,网上说可以把win10的格式ttc改成ttf,我没试过,你们可以尝试下。

解决

前面找到了问题产生的关键,所以我们要开始动手解决它!

这里因为我的服务器已经装好中文字体插件了,因此直接进入正题,没有的可以看下这个文章https://blog.csdn.net/wlwlwlwl015/article/details/51482065

检查是否安装中文字体插件命令

fc-list

如果没报not common说明安装了。

首先我们要把字体上传到服务器

这里我使用的xshell终端,直接使用rz命令上传文件到服务器。(rz提示找不到命令麻烦百度装下插件)

我们公司对服务器直接上传文件做了限制,不能直接rz上传,只能通过scp的方式上传。

(可以直接上传忽略1,2步骤)

scp上传的思路是:

1.首先登陆跳板机,跳板机的~目录下,是允许直接rz上传文件的,我们rz先把字体上传到~目录下。

  1. scp命令格式 scp 文件 目标服务器帐号@目标服务器:路径
  2. 把字体复制到指定目录再使用sudo cp 到目标路径
  3. 路径1:/usr/share/fonts (系统字库路径)把所有字体都复制到该目录下
  4. 路径2:java
    1. 执行命令 echo $JAVA_HOME 找到java安装目录
    2. 复制到安装路径的/jre/lib/fonts/目录下
    3. fonts下创建fallback目录
    4. 复制所有字体到fallback目录下

6.刷新系统字体缓存(重要)

fc-cache

7.查看安装是否成功

fc-list

8.配置tomcat

在tomcat启动脚本中增加配置(vim startenv.sh )

export LANG=en_US.utf-8

重启Tomcat 搞定!!!!

本文分享自微信公众号 - SAnBlog(sanblog),作者:SAn

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 分析Guava并发工具类Futures

    为什么要分析这个东西呢,其实guava从开始开始工作就用了,带给我们开发的效率提升不是一点半点,java很多工具类也说借鉴的guava,首先今天分析的Futur...

    SAnBlog
  • Linux&树莓派安装seafile私有云盘

    在隐私越来越重要的今天,重要个人隐私文件已经不敢放在云盘了,于是在树莓派上搭建个私有云盘,以及自己踩到的一些坑分享下。

    SAnBlog
  • 树莓派Redis集群部署

    注意这里请使用本机ip,请勿使用127.0.0.1.否则客户端连接时将其他机器与127.0.0.1方式连接导致失败.

    SAnBlog
  • 排序算法:Python 实现

    import sys print (sys.version) # 3.5.2 |Continuum Analytics, Inc.| (default, J...

    用户1332428
  • Real-time Xenomai 3 example 1

    The exercises are based onXenomai 3using theAlchemy API.The example program belo...

    ZC_Robot机器人技术
  • silverlight寻奇 - Graphite

    Graphite是一个能自动布局的图表控件。 目前它已经有了silverlight 2 和 wpf的版本。观看demo时按下“Ctrl”键再做点击操作。 原文...

    用户1172164
  • Pulse-latch approach reduces dynamic power

    大家都在讨论Latch的缺点,比如时序分析中存在borrow time的问题,如何在数字电路设计时避免产生latch。然而,在一些大公司,也时常可以见到用lat...

    ExASIC
  • SAP CRM Fiori My task应用里roundtrip取舍的讨论

    问题是点了My task tile之后,进到task list view之后的第一个batch 操作是否可以去掉:

    Jerry Wang
  • GBDT+LR算法解析及Python实现

    本质上GBDT+LR是一种具有stacking思想的二分类器模型,所以可以用来解决二分类问题。这个方法出自于Facebook 2014年的论文 Practica...

    机器学习AI算法工程
  • 自然语言交互以促进远程机器人的心理模型(CS AI)

    在现实环境中部署越来越复杂和自治的机器人会产生深远的影响。高风险场景(例如应急响应或海上能源平台和核查)要求机器人操作员对机器人可以做什么和不能做什么具有清晰的...

    RockNPeng

扫码关注云+社区

领取腾讯云代金券