解决Linux html生成图片中文乱码
前言
最近搞了一个需求,功能大概是通过html生成图片。功能是挺简单的吧?
本地测试没什么问题,但是发服务器上,发现html生成的imgae中文乱码。
解决过程
首先google了一圈
发现这个框架比较冷萌,几乎没什么可参考的资料,但是可以搜索同功能的框架(Html2Imgage),应该会出现同样的问题,因为本地没问题,所以可以确定是环境问题。
类似功能的框架,也出现了中文乱码问题,但是图片上渲染的中文是框框的形式。
所以我们也可以排除掉乱码问题,因为乱码应该会展示字体,只是我们读不懂,这个框框说明缺少字库!
google一圈发现的却缺少了中文字体库,生成图片缺少什么字体就全部准备好。
像我这里缺少微软雅黑,宋体等。字体可以到系统C:WINDOWSFonts下获取,记得字体格式是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先把字体上传到~目录下。
- scp命令格式 scp 文件 目标服务器帐号@目标服务器:路径
- 把字体复制到指定目录再使用sudo cp 到目标路径
- 路径1:/usr/share/fonts (系统字库路径)把所有字体都复制到该目录下
- 路径2:java
- 执行命令 echo $JAVA_HOME 找到java安装目录
- 复制到安装路径的/jre/lib/fonts/目录下
- fonts下创建fallback目录
- 复制所有字体到fallback目录下
6.刷新系统字体缓存(重要)
fc-cache
7.查看安装是否成功
fc-list
8.配置tomcat
在tomcat启动脚本中增加配置(vim startenv.sh )
export LANG=en_US.utf-8
重启Tomcat 搞定!!!!
- HTML 教程
- HTML 简介
- html div 标签介绍
- html span 标签介绍
- html a 超链接标签
- HTML Br换行标签介绍
- HTML P段落标签介绍
- HTML br与p标签区别
- Html H 标题标签
- html px em pt长度单位
- HTML form 标签
- HTML radio 单选框
- HTML B 加粗标签
- HTML strong加粗粗体标签
- HTML em 强调标签
- HTML i 斜体标签
- HTML u下划线标签
- HTML s 删除线标签
- Html img 图片标签
- Html上标注sup与下标注sub标签
- HTML nobr 禁止换行标签
- HTML hr 水平线标签
- HTML label 标签
- HTML input 标签
- HTML textarea 标签
- HTML select下拉列表标签
- HTML checkbox 多选框
- HTML font color 标签
- HTML iframe 框架标签
- HTML Table 表格
- HTML dl dt dd 标签
- HTML ol li有序列表标签
- HTML ul li 无序列表标签
- HTML 注释
- CSS 教程
- CSS 简介
- CSS 语法
- CSS Id 和 Class选择器
- CSS 样式的创建
- CSS background 背景介绍
- CSS 文本样式
- CSS font 字体
- CSS A 链接
- CSS ul ol列表样式
- CSS TABLE 样式
- CSS 框模型
- CSS border 边框
- CSS Outlines 轮廓
- CSS 外边距 Margin
- CSS Padding 内边距
- CSS 分组和嵌套选择器
- CSS 尺寸 (Dimension)
- CSS Display 属性
- CSS Position 定位
- CSS Float 浮动
- CSS 水平对齐(Horizontal Align)
- CSS 组合选择符
- CSS 伪类
- CSS 伪元素
- CSS 导航栏
- CSS 下拉菜单
- CSS 图片廊
- CSS 图像透明/不透明
- CSS sprite 图像拼合技术
- CSS 媒体类型
- CSS 属性选择器
- CSS 实例
- 一个ip, 两个域名, 两个ssl, 访问多个不同的项目
- 直接插入排序法——java语言实现
- Spring-boot构建多模块依赖工程时,maven打包异常:程序包xxx不存在
- spring boot使用注解的方式引入mybatis的SqlSessionDaoSupport
- 数据库优化 6. 启用MySQL查询缓存
- 正则表达式———通俗易懂———边讲解边举例
- git Lab ssh方式拉取代码失败
- 栈的应用之括号的匹配Java语言描述
- 第一个go程序
- go语言简单介绍,增强了解
- go string类型的特性
- golang 中timer,ticker 的使用
- Go语言入门篇-gRPC基于golang & java简单实现
- 第一章 go基础语法
- 第二章 go指针