天天看點

Linux環境Font font = new Font(“宋體“,Font.PLAIN,25) Graphics.drawString()中文亂碼

通過java代碼生成圖檔時,圖檔上包含中文文字時,在windows環境下正常顯示,但是在linux環境中可能出線亂碼情況,這是由于您的linux伺服器上沒有中文字型導緻的。

解決方案如下:

【1】.檢查您的linux伺服器上是否存在您設定的中文字型(若有則可正常顯示):切換到"/usr/share/fonts“目錄,若無fonts目錄則可手動建立fonts檔案夾。

【2】.準備好中文字型:在您的windows電腦上能正常顯示,說明您電腦有該字型,将字型複制打包到一個檔案夾,準備上傳到linux伺服器的/usr/share/fonts目錄下。

windows中字型目錄:C:\Windows\winsxs目錄下\amd64_microsoft-windows-font-truetype-simfang_31bf3856ad364e35_6.1.7600.16385_none_e417159f3b4eb1b7、\amd64_microsoft-windows-font-truetype-simsun_31bf3856ad364e35_6.1.7600.16385_none_56fe10b1895fd80b等等,看到“amd64_microsoft-windows-font-truetype-sim”檔案夾就大概知道什麼意思了,宋體、楷體等,将裡面的字型檔案複制打包。

【3】.上傳字型:将準備好的字型一起上傳到linux伺服器的”/usr/share/fonts“的目錄下;示例如圖:

Linux環境Font font = new Font(“宋體“,Font.PLAIN,25) Graphics.drawString()中文亂碼

【4】.切換到您上傳字型目錄/usr/share/fonts/winfont,在此目錄下執行linux指令“fc-cache -fv”,掃描字型目錄并生成字型資訊的緩存,然後應用程式就可以"立即"使用這些新安裝的字型。

【5】.重新開機您的應用即可。

感謝網友提供的資料,參考來源:https://blog.csdn.net/typa01_kk/article/details/50615453?utm_source=blogxgwz6