中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

LindDotNetCore~docker里圖像上生成中文亂碼問題

回到目錄

因(yin)為docker上(shang)的大部分鏡(jing)像都是基(ji)于linux系(xi)統的,所以(yi)在(zai)向圖像中寫中文時需(xu)要考(kao)慮中文字體問題,例(li)如在(zai)microsoft/aspnetcore2.0這個(ge)鏡(jing)像,它是基(ji)于debian系(xi)統的,它上(shang)面只有一個(ge)英文字體,所以(yi)在(zai)輸出中文時會出現亂碼,這是正(zheng)常的,我(wo)們的解決方(fang)案也需(xu)要按(an)著以(yi)下步驟即可(ke)!

問題表現

  1. linux系統上
  2. docker容器上
  3. dotnetcore System.Drawing輸出文字上

解決思路

  1. dockerfile里動態安裝中文字體,激活字體
  2. dotnetcore里使用新添加的字體,網上介紹很多的是文泉驛正黑,注意它的名字,不要寫錯,也可以使用字母名稱WenQuanYi Zen Hei,注意它有空格的
  3. docker build --no-cache . 運行你的dockerfile生成新的鏡像,docker run你的鏡像即可

具體代碼

一(yi) dockerfile里動態添加字(zi)體和刷新

FROM microsoft/aspnetcore:2.0
WORKDIR /app
EXPOSE 80
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里生產中文字(zi)體(ti)

Font fTitle = new Font("文(wen)泉驛正黑", 16);
Font fText = new Font("WenQuanYi Zen Hei", 9);

三 同時可以進入容器(qi),查看已經安裝過的(de)中文字體

 fc-list :lang=zh //:號前面有空格 

事實上,通過顯示(shi)的就是當前容器所在的linux操作(zuo)系統支持的中(zhong)文字(zi)體(ti),你在圖像上輸出中(zhong)文時,需要(yao)使用上面的字(zi)體(ti)!

對dotnetcore上的System.Drawing環境搭建可以查看我的這篇文章:DotNetCore跨平臺~System.DrawingCore部署Linux需要注意的

四 安(an)裝fc-list命(ming)令

`fc-list`命令通常是通過安裝Fontconfig軟件包來獲得的,這個軟件包提供了用于管理字體的工具和庫。在大多數Linux發行版中,Fontconfig已經預先安裝了,因此你可以直接使用`fc-list`命令。

如果你的系統中沒有安裝Fontconfig或者找不到`fc-list`命令,你可以嘗試通過包管理器安裝Fontconfig軟件包。以下是一些常見的Linux發行版上安裝Fontconfig的方法:

對于Debian/Ubuntu系統,你可以使用apt包管理器進行安裝:
```bash
sudo apt-get install fontconfig
```

對于CentOS/RHEL系統,你可以使用yum包管理器進行安裝:
```bash
sudo yum install fontconfig
```

對于Fedora系統,你可以使用dnf包管理器進行安裝:
```bash
sudo dnf install fontconfig
```

安裝完成后,你就可以使用`fc-list`命令來列出系統中的字體列表了。希望這能幫助到你順利安裝`fc-list`命令!

 感謝閱讀(du)!

回到目錄

posted @ 2018-01-26 10:14  張占嶺  閱讀(2022)  評論(0)    收藏  舉報