BufferedImage生成條形碼,中文亂碼問(wèn)題排查解決

使用 BufferedImage 生成條形碼時(shí),需要將中文備注信息畫在條形碼圖片上,本地測(cè)試查看條形碼圖片生成正常,中文信息可以正常展示。但是發(fā)布到linux服務(wù)器后,圖片中的中文始終亂碼。遂開始排查問(wèn)題:
Graphics2D 畫布寫入文字代碼如下:

BufferedImage image;
Graphics2D  g2d = image.createGraphics();
        // 設(shè)置文字顏色
        g2d.setColor(Color.BLACK);
        // 字體、字型、字號(hào)
        // g2d.setFont(new Font("微軟雅黑", Font.PLAIN, fontSize));
        g2d.setFont(new Font("宋體", Font.BOLD, fontSize));

此處設(shè)置了字體,而中文亂碼原因也在此處。如果設(shè)置的字體不支持中文,或者設(shè)置的字體在部署的服務(wù)器上沒有,那么在生成圖片時(shí),中文就會(huì)亂碼展示小方框


image.png

此時(shí),需要去服務(wù)器查看:

// 查看服務(wù)器中文字體列表
fc-list :lang-zh
如果 fc-list 命令無(wú)法識(shí)別,則需先安裝fontConfig
離線安裝步驟:
1.下載安裝包 地址
fontconfig-2.13.0-4.3.el7.x86_64.rpm
ttmkfdir-3.0.9-42.el7.x86_64.rpm
搜索對(duì)應(yīng)的安裝包,選擇合適的版本下載

image.png

image.png

下載后上傳到服務(wù)器準(zhǔn)備安裝

2.安裝:
進(jìn)入服務(wù)器上安裝包所在目錄,執(zhí)行安裝命令
rpm -ivh fontconfig-2.13.0-4.3.el7.x86_64.rpm --nodeps --force
rpm -ivh ttmkfdir-3.0.9-42.el7.x86_64.rpm --nodeps --force

3.創(chuàng)建字體目錄,上傳字體文件
cd /usr/share
mkdir fonts
chmod -R 755 /usr/share/fonts
// /usr/share/fonts 是安裝fontconfig后配置文件中字體文件的默認(rèn)目錄,也可以自定義修改
// 修改字體配置文件中的文件目錄
vim /etc/fonts/fonts.conf


image.png

上傳windows本地的字體文件到服務(wù)器上的字體目錄
把C:\Windows\Fonts下的字體庫(kù)打包上傳到fonts目錄

4.刷新緩存讓字體生效(不需要重啟服務(wù)器)

 fc-cache 
  1. 驗(yàn)證字體是否生效
// 查看全部字體
fc-list
// 查看中文字體
fc-list :lang-zh
// 查看 宋體
fc-list :lang-zh |grep 宋體

5.此時(shí)去查看條形碼生成功能是否正常,如果不正常,重啟條形碼對(duì)應(yīng)的服務(wù)即可。

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容