背景
客户新提需求,需要增加一张报表,报表需要增加统计图表。因为客户需要将数据以及统计图表一并导出到word
中,所以没有使用前端统计相关的类库,比如:echarts
、highcharts
等库。虽然可以使用前端相关类库导出word
,但是并不能满足现有需求。后台服务使用的是.net 5
,统计图完成后发现中文出现乱码。如下图:
问题
出现以上乱码问题,其一可能是统计类库不支持中文导致的,也有可能是docker
镜像中缺少相应的中文字体。因为在本地开发环境测试并没有问题,更新到测试环境后才发现以上乱码情况,所以应该是镜像中缺少相关中文字体而导致的。
解决
既然是缺少中文字体,那就安装字体就行了。在Windows
系统中复制需要的字体到新建名称为chinese
文件夹下,将此文件夹放到与dockerfile
同一目录下即可。dockerfile
文件中新增内容如下:
RUN apt-get -y install fontconfig
COPY ./chinese /usr/share/fonts
RUN fc-cache -vf
Windows系统字体所在位置:控制面板\外观和个性化\字体
Linux字体目录是:/usr/share/fonts,所以dockerfile中指定将字体复制到此目录。
dockerfile
更改后提交构建镜像并重新运行容器,再次查看效果后发现恢复正常,如下图:
总结
在docker
中使用的镜像,有时候选择的是最小依赖的基础镜像,镜像比较小。但是一些情况是不满足需求的,在不更改基础镜像的情况下,还是要通过docker
相关指令安装所需依赖,例如:一些软件、字体或者其他内容。
转载请注明:清风亦平凡 » 在Docker容器下使用.net 5统计图中文乱码的问题