首页 > 其他分享 >下载图片中文乱码问题解决记录

下载图片中文乱码问题解决记录

时间:2023-12-20 15:03:10浏览次数:31  
标签:wpms 中文 fonts 乱码 usr Jenkins main hil 下载

1.问题背景

需求需要做一个场所码下载的需求,后端接口实现使用的是AWT[1]。在本地Windows开发环境联调接口一切正常,当部署到测试环境Linux服务器上之后,前端同事反馈下载的图片如下:

这个问题其实不能算是乱码,而是字体缺失,图片中的汉字使用了微软雅黑字体,而测试环境使用的是docker部署,没有这个字体,下次遇到这种问题,记得首先检查字体文件。

2.排查过程

我这个模块的代码是从其他现有模块的功能中copy过来的,所以我将其他模块下的字体文件全部copy到我的模块下,

然后修改dockerfile重新进行Jenkins部署,

# 照抄加了一行
COPY ./fonts /usr/share/fonts/truetype/dejavu/

然后构建失败了,查询日志报错如下:

Step 10/11 : COPY ./hil-wpms-service/hil-wpms-main/fonts /usr/share/fonts/truetype/dejavu/
COPY failed: stat /var/lib/docker/tmp/docker-builder659582304/hil-wpms-service/hil-wpms-main/fonts: no such file or directory
Build step 'Execute shell' marked build as failure
Finished: FAILURE

很明显找不到这个/fonts文件夹,我首先怀疑的是不是目录写错了,因为我的模块dockerfile/fonts的相对位置和我copy的模块不同,因此我修改了我的dockerfile

COPY ./hil-wpms-service/hil-wpms-main/fonts /usr/share/fonts/truetype/dejavu/

重新进行Jenkins部署,还是失败并且同样的报错,那么就说明不是相对目录错误的问题。
接下来,我又从头看了一遍Jenkins的控制台输出,发现在前面的有一段日志如下:

[203-imedical-hil-wpms] $ /bin/sh -xe /tmp/jenkins7231167455629774297.sh
channel stopped
+ cd /var/lib/jenkins/workspace/203-imedical-hil-wpms/hil-wpms-service/hil-wpms-main/target
+ sudo cp -f hos-hil-wpms-main-1.0.0.RELEASE.jar /usr/local/hil/wpms/main/
+ cd /var/lib/jenkins/workspace/203-imedical-hil-wpms/hil-wpms-service/hil-wpms-main/script/centos/
+ sudo cp -f Dockerfile /usr/local/hil/wpms/main/
+ cd /var/lib/jenkins/workspace/203-imedical-hil-wpms
+ cd /usr/local/hil/wpms/main/
++ date '+%Y-%m-%d %H:%M:%S'
+ echo 2023-12-20 11:57:35 启动docker容器
2023-12-20 11:57:35 启动docker容器
+ docker build -t hil-wpms-main:v1 .
Sending build context to Docker daemon  268.1MB

看起来是将编译完成的jar包和dockerfile复制到指定的目录下,并且最后cd到了指定的目录,那么会不会是我的Jenkins脚本没有复制/fonts呢?对比了成功运行的模块的Jenkins的配置和我的模块的Jenkins的配置,果然是脚本少了一段。
少的一段是在Jenkins的配置的Execute shell中,如下:

cd /var/lib/jenkins/workspace/203-imedical-hil-wpms/hil-wpms-service/hil-wpms-main/
sudo cp -r -f fonts /usr/local/hil/wpms/main/

那么上面那段日志就是执行Jenkins配置的Execute shell的日志,我没有将/fonts复制到/usr/local/hil/wpms/main/下,那么自然在后面的dockerfile执行COPY ./fonts /usr/share/fonts/truetype/dejavu/时会报错no such file or directory

3.问题解决

问题找到,那么将dockerfile的路径改回来,然后再Jenkins的Execute shell中添加复制语句,重新执行Jenkins构建,成功,下载图片正常,

问题解决。

文末注释:


  1. AWT(Abstract Window Toolkit)是 Java 的一个图形用户界面(GUI)工具包。 ↩︎

标签:wpms,中文,fonts,乱码,usr,Jenkins,main,hil,下载
From: https://www.cnblogs.com/datangguanjunhou/p/17916530.html

相关文章

  • 《中文版AutoCAD 2022基础教程》
    ......
  • 比Wget、Curl更强大的下载工具! 转载
    作者:Escape 链接:https://www.escapelife.site/posts/7a3b6469.htmlaria2是一款轻量且高效的命令行下载工具。堪称下载利器!介绍说明轻量、高效、命令行aria2 是一款轻量且高效命令行下载工具,它提供了对多协议和多源地址的支持,并尝试将下载带宽利用率最大化,目前支持的协......
  • macOS Sonoma 14.2.1 (23C71) 正式版发布,ISO、IPSW、PKG 下载 (安全更新)
    macOSSonoma14.2.1(23C71)正式版发布,ISO、IPSW、PKG下载本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。请访问原文链接:https://sysin.org/blog/ma......
  • macOS Sonoma 14.2.1 (23C71) 正式版 Boot ISO 原版可引导镜像下载 (安全更新)
    macOSSonoma14.2.1(23C71)正式版BootISO原版可引导镜像下载(安全更新)本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。请访问原文链接:https://s......
  • 解决日文系统的中文软件里出现乱码的问题
    中文软件里出现乱码的问题方案一:日文系统安装中文软件,打开软件后,有乱码的情况发生。对策:把地域的语言设置为“中国(简体)”,然后重启系统即可。(我用这个方法就好用了)其他方案:如果还不好用,还有一种修改注册表的方法。电脑打开程序或软件出现乱码的解决办法(中文变成乱码)https......
  • 这个标题乱码不能显示怎么解决呀?
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个matplotlib可视化的问题,一起来看看吧。问题描述:大佬们请问下这个标题乱码不能显示怎么解决呀?ai让我直接加,encoding='utf-8' 但是这个报错AttributeError:Text.set()gotanunexpected......
  • 前端json转excel 到zip下载
    问题描述:后端返回数据原先返回是多个json文件的压缩包二进制文件流,前端直接下载二进制文件流。但是客户要求下载excel类型文件。解决方案:前端拿到表格的json数据转换成对应table的html字符串,使用插件js-xlsx。给个链接,import*asXLSXfrom'xlsx'//JSONData为导出的json数......
  • Gemini 自曝中文用百度文心一言训练丨 RTE 开发者日报 Vol.109
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的**观点**」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表......
  • 处理application/octet-stream格式的文件下载
     exportfunctiondownloadFile(url,data){axios({method:'post',url:Vue.prototype.myUrl+url,headers:{'x-auth-token': window.localStorage.getItem('token')},responseType:'blob',data:data......
  • vue2前端调接口下载(导出)后端返回.zip压缩文件流
    1、接口api//三级教育档案导出exportfunctionsearchPersonnelHousInfoExport(data){returnrequest({url:train+'/fileExport/controller/export/personalProfile',method:'post',data:data,responseType:'blob',......