LindDotNetCore~docker里图像上生成中文乱码问题
因为docker上的大部分镜像都是基于linux系统的,所以在向图像中写中文时需要考虑中文字体问题,例如在microsoft/aspnetcore2.0这个镜像,它是基于debian系统的,它上面只有一个英文字体,所以在输出中文时会出现乱码,这是正常的,我们的解决方案也需要按着以下步骤即可!
问题表现
- linux系统上
- docker容器上
- dotnetcore System.Drawing输出文字上
解决思路
- dockerfile里动态安装中文字体,激活字体
- dotnetcore里使用新添加的字体,网上介绍很多的是文泉驿正黑,注意它的名字,不要写错,也可以使用字母名称WenQuanYi Zen Hei,注意它有空格的
- docker build --no-cache . 运行你的dockerfile生成新的镜像,docker run你的镜像即可
具体代码
一 dockerfile里动态添加字体和刷新
FROM microsoft/aspnetcore:2.0
WORKDIR /app
EXPOSE
RUN ls
COPY publish .
COPY sources.list /etc/apt/sources.list
RUN apt-get update && apt-get -y install libgdiplus
RUN apt-get -y install fonts-wqy-zenhei && apt-get clean && fc-cache -fv
ENTRYPOINT ["dotnet", "FileUpload.dll"]
二 在System.Drawing里生产中文字体
Font fTitle = new Font("文泉驿正黑", );
Font fText = new Font("WenQuanYi Zen Hei", );
三 同时可以进入容器,查看已经安装过的中文字体
fc-list :lang=zh //:号前面有空格

事实上,通过显示的就是当前容器所在的linux操作系统支持的中文字体,你在图像上输出中文时,需要使用上面的字体!
对dotnetcore上的System.Drawing环境搭建可以查看我的这篇文章:DotNetCore跨平台~System.DrawingCore部署Linux需要注意的
感谢阅读!
LindDotNetCore~docker里图像上生成中文乱码问题的更多相关文章
- ueditor 1.4.3 gbk asp 上传中文乱码 终极解决方法 ie6 ie8 也适用
[摘要:百度编纂器1.43 gbk asp 题目 1.firefox3.0下 单图上传 面没有了 面多图上传 中央的蓝色按钮(即 面击挑选图片)没有表现(附件上传出那个题目) 没有晓得我的水狐吃翔了 ...
- python 在图像上写中文字体 (python write Chinese in image)
本人处理图像的时候经常使用opencv的包,但是 cv2.putText 显示不了中文,所以查找了如何在python在图像上写中文的方法,在伟大的Stack Overflow上面找到一个方法,分享给大 ...
- Android 关于HttpClient上传中文乱码的解决办法
使用过HttpClient的人都知道可以通过addTextBody方法来添加要上传的文本信息,但是,如果要上传中文的话,或还有中文名称的文件会出现乱码的问题,解决办法其实很简单: 第一步:设置Mult ...
- 关于HttpClient上传中文乱码的解决办法
使用过HttpClient的人都知道可以通过addTextBody方法来添加要上传的文本信息,但是,如果要上传中文的话,或还有中文名称的文件会出现乱码的问题,解决办法其实很简单: 第一步:设置Mult ...
- 修改bigbluebutton白板上传中文乱码
中文命名的文档,上传是乱码 -- 显示的 打开后, 中文部分是乱码 Comment 1 by project member ffdixon, Nov 08, 2010 Translatio ...
- Docker容器部署tomcat出现中文乱码
docker 容器部署tomcat后,日志文件中出现中文乱码,很多问号,中文的文件夹也是问好.先看看容器的locale: [root@docker1 ~]# docker exec -it 41de9 ...
- 解决Docker中运行的MySQL中文乱码
docker exec -it mysql bash 如果没有安装vim,请参考 解决Docker容器中不能用vim编辑文件 vim /etc/mysql/mysql.conf.d/mysql.cnf ...
- windows上java中文乱码-指定字符集 -Dfile.encoding=UTF-8
jvm启动中增加参数: -Dfile.encoding=UTF-8 重启即可.
- mysql在docker下运行,出现中文乱码
随机推荐
- Smokeping
Smokeping允许你监测多台服务器. Smokeping使用RRDtool来存储数据,另外,其可基于RRDtool输出生成相应的统计图表. Smokeping由两个部分组成.一个运行在后台.定期收 ...
- BZOJ_3942_[Usaco2015 Feb]Censoring_KMP
BZOJ_3942_[Usaco2015 Feb]Censoring_KMP Description 有一个S串和一个T串,长度均小于1,000,000,设当前串为U串,然后从前往后枚举S串一个字符一 ...
- BZOJ_3996_[TJOI2015]线性代数_最大权闭合子图
BZOJ_3996_[TJOI2015]线性代数_最大权闭合子图 Description 给出一个N*N的矩阵B和一个1*N的矩阵C.求出一个1*N的01矩阵A.使得 D=(A*B-C)*A^T最大. ...
- BZOJ_2721_[Violet 5]樱花_数学
BZOJ_2721_[Violet 5]樱花_数学 Description Input Output $\frac{1}{x}+\frac{1}{y}=\frac{1}{m}$ $xm+ym=xy$ ...
- 支付宝使用流程和踩坑小记(附Demo)
# 支付宝使用整理 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym, ...
- input表单中嵌入百度地图
在做项目开发中,常常会用到定位的操作,比如在做一些资产房产等方面的业务的时候,需要知道资产的具体位置,并将位置信息保存下来,这个时候我们可以使用form表单嵌入百度地图的方式来实现这个功能,下面请看详 ...
- linux学习笔记基础篇(一)
一.IP操作 1.临时修改IP ,执行命令 ifconfig 网卡名称 新ip :例如 ifconfg nescc 192.168.1.110 ,重启失效 2.重启网络 ,执行命令 syste ...
- mybatis 异常Result Maps collection does not contain value for java.lang.String
Result Maps collection does not contain value for java.lang.String 以上是我报的错. 只要报Result Maps collectio ...
- Jmeter----A接口response中body的某一个参数传递给B接口request的body中使用(参数的传递)
示例:将接口"获取待办列表"response中body的id值传递给接口"删除待办"request的body中使用: 操作步骤如下: 第一步:给"获取 ...
- 你不可不知的iOS与Android差异点!
1.运行机制的区别 Android:沙盒运行机制,采用真后台运行,将所有的应用都保存在RAM中,按home键,程序被挂在了后台,实际未退出,因程序在后台运行,所以可以收到推送消息,导致内存越用越低,越 ...