java壓縮zip檔案中文亂碼問題 linux 下

2021-06-22 16:18:36 字數 901 閱讀 4507

ant.jar
import org.apache.tools.zip.zipentry;

import org.apache.tools.zip.zipoutputstream;

public void workzips(string zipname,string filename,listfilelist) throws exception

//生成的zip檔名為demo.zip   

zipoutputstream out = new zipoutputstream(new fileoutputstream(filepath+filename+".zip"));   

out.setencoding("gbk");

for(int i=0;i0)   

out.closeentry();   

fis.close(); 

//刪除被合併的zip

this.deletefile(filepath+filelist.get(i).tostring().split(";")[1]+".zip");

}   

out.close();   

}

out.setencoding("gbk"); 這裡很關鍵,你要是不設定的話,預設獲取系統編碼;這樣設定,在linux下壓縮zip,在window系統解壓就不會出現亂碼了
注:我們寫檔案的時候使用utf-8的編碼來寫檔名的,這個時候-- 奇蹟出現了「亂碼」,為什麼呢? gbk每個漢字佔2個位元組,而utf-8每個漢字佔3個位元組,它們所佔位元組數都不一樣,亂碼是必須的

Linux 下 zip 檔案解壓中文亂碼

windows下的中文檔名拷貝到ubuntu下面以後,檔名直接變成亂碼,原因為windows下的檔名以gbk編碼,而ubuntu下的檔案 名為utf 8編碼 1.ubuntu下有乙個工具可以用來轉換檔名的編碼,這個工具是convmv 安裝方法 apt get install convmv 使用方法 ...

ZIP檔案壓縮

在開發過程中遇到乙個小需求,將附件中的檔案進行壓縮,壓縮檔案以前沒怎麼接觸過,記錄下,直接上 將附件中的檔案壓縮 param filemap 壓縮前的檔案 return map 壓縮後的檔案 private mapfilescompressionzip mapfilemap catch excepr...

檔案壓縮zip

壓縮檔案 原資料夾路徑 目的檔案路徑以及檔名稱 public static void createzip string sourcefilepath,string destinationzipfilepath 遞迴壓縮檔案 待壓縮的檔案或資料夾路徑 打包結果的zip檔案路徑 類似 d workspa...