壓縮檔案base64解析中文亂碼問題
阿新 • • 發佈:2019-01-25
前段時間遇到一個很奇怪的問題,同一個專案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); }後執行,亂碼問題解決。