解壓rar和zip 解決中文亂碼

2021-09-30 12:12:45 字數 1888 閱讀 2664

public void unrar(string rarpath, string targetpath) throws exception 

// 判斷編碼,解決中文亂碼的問題

string localpath = f.isunicode() ? f.getfilenamew() : f

.getfilenamestring();

// 得到的localpath分隔符為"\",轉為為"/"

localpath = targetpath

+ localpath.replaceall("\\\\", file.separator);

int end = localpath.lastindexof(file.separator);

string dir = localpath;

if (end != -1)

// 需要建立資料夾

file file = new file(dir);

if (!file.exists())

outputstream = new fileoutputstream(localpath);

// archive自己的生成檔案的方法

archive.extractfile(f, outputstream);

f = archive.nextfileheader();

} outputstream.close();

archive.close();

} private void unzip(string zippath, string targetpath) throws exception

// 例項化zipfile物件

zipfile zipfile = new zipfile(file);

// 根據檔案的編碼建立,解決中文亂碼的問題,getencoding()有可能為null,就預設編碼

zipfile = new zipfile(file, zipfile.getencoding());

// 獲取zipfile中的條目

enumerationfiles = zipfile.getentries();

// 迭代中的每乙個條目

zipentry entry = null;

// 解壓後的檔案

file outfile = null;

// 讀取壓縮檔案的輸入流

bufferedinputstream bin = null;

// 寫入解壓後檔案的輸出流

bufferedoutputstream bout = null;

while (files.hasmoreelements())

continue;

}// 建立目錄

if (!outfile.getparentfile().exists())

if (outfile.exists())

// 獲取讀取條目的輸入流

bin = new bufferedinputstream(zipfile.getinputstream(entry));

// 獲取解壓後檔案的輸出流

bout = new bufferedoutputstream(new fileoutputstream(outfile));

// 讀取條目,並寫入解壓後檔案

byte buffer = new byte[1024];

int readcount = -1;

while ((readcount = bin.read(buffer)) != -1)

bout.flush();

bin.close();

bout.close();

buffer = null;

} }

jar包:

Python解壓zip和rar檔案

更多0 python rarzip 如上篇所說,我要使用python解壓一些檔案,一來就不懂,google到zipfile了,然後又google到rarfile了。rarfile是模仿zipfile模組寫的,所以介面幾乎一樣,只有rar和zip的字元差別。但是zip功能是python內建模組,rar...

解決ubuntu中zip解壓的中文亂碼問題

解決ubuntu中zip解壓的中文亂碼問題 在我的ubuntu12.10中,發現顯示中文基本都是正常的,只有在解壓 windows傳過來的zip檔案時,才會出現亂碼。所以,我用另乙個方法解決中文亂碼問題。用到的工具是the unarchiver專案提供的lsar unar工具。安裝 12.04及以上...

解決linux下zip檔案解壓後中文亂碼問題

最近專案上碰到在windows上壓縮了一些,檔名稱都是中文的,scp到linux下用unzip解壓後檔名 原因 由於zip在壓縮時並沒有指定編碼格式,windows下生成的zip檔案中的編碼是gbk gb2312等,而linux下的預設編碼是utf8因此,導致這些zip檔案在linux下解壓時出現中...