1. 程式人生 > >壓縮檔案base64解析中文亂碼問題

壓縮檔案base64解析中文亂碼問題

前段時間遇到一個很奇怪的問題,同一個專案war包,在不同的伺服器環境中,只有一個環境出現亂碼問題,焦頭爛額好幾天。現在將問題及踩過的坑記錄下,希望能幫助到其他人。

首先各環境服務部署的程式碼是相同的,不在同一個伺服器上,

如 本地dev :localhost:8080

測試test:192.168.1.100:8080

uat:x.x.x.200:8080

正式:b.b.b.100:8080

專案資料從mq中取出 ,解析後儲存。

資料寫入mq程式碼如下:

mq中取資料程式碼如下:

測試環境程式碼執行至log.info("獲取到的訊息:"+value);處,列印日誌中文亂碼,其他環境均OK.

檢查伺服器編碼格式 都修改為utf-8,重啟後問題依舊。

然後懷疑mq環境有問題,重新裝了mq後問題還是,故又排除mq問題。

最後增加如下程式碼

/**
 * 設定壓縮編碼,解決中文檔名亂碼問題
 */
private static final String encoding = System.getProperty("sun.jnu.encoding");
static {
   /**
    * 解壓依據的編碼是sun.zip.encoding 所以需要設定 解壓編碼
    */
System.setProperty("sun.zip.encoding", encoding);
}
後執行,亂碼問題解決。