⑴ 用java直接讀取zip類型的文件時中文亂碼問題怎麼解決
1.一般是軟體程序解碼錯誤。如瀏覽器把GBK碼當成是Big5碼顯示,或電子郵件程序把對方傳來的郵件錯誤解碼。如果在發送時編碼錯誤,收件者的電郵程序是不能解碼的,需要寄件者的電郵程序重新編碼再寄。
2.字體檔案(font file)不對。
3.來源編碼錯誤,或文件受到破壞。
4.一種語言版本的操作系統安裝了另外一種語言版本的應用程序,或者應用程序安裝的升級補丁的語言版本與應用程序原來安裝的語言版本不一致。
5.早期單位元組的應用程序在打開雙位元組語言的文件時不能正確識別文字的分割,在換行的地方把一個字從中分成兩段,導致緊接在後面的整個一行全部都是亂碼。
6.低版本的應用程序不能識別高版本的程序創建的文件。
7.由於TXD等修改文件出現內部沖突,一些修改游戲的MOD(modification)CLEO、IV補丁、真實補丁、技能補丁、升級補丁和CCI人物補丁等游戲修改軟體的「Readme」「必看!」等閱讀文件會出現亂碼。
⑵ Java zip 解壓文件中文 亂碼問題.. 跪求大神解答
字元格式需要進行轉碼了
⑶ java用apache的ZipEntry壓縮文件名為中文的word文件時,文件名亂碼
對於輸出zip文件的ZipOutputStream對象設置一下編碼:
ZipOutputStreamout=newZipOutputStream(newFileOutputStream(
zipFileName));
//設置filenames的編碼
out.setEncoding("UTF-8");
通常linux下使用utf8進行文件命名編碼,而windows下採用gbk,根據你的系統情況而定
可參考下api:
http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/api/org/apache/tools/zip/ZipOutputStream.html
⑷ 請大神幫忙解決一個用java解壓縮一個zip壓縮格式位元組流中文內容亂碼問題!
伺服器端一般不是採用的是gzip嗎。
⑸ java Zip解析亂碼問題
debug一下,看看filepath輸出什麼,看看下面這個代碼
import java.io.*;
import java.util.zip.*;
public class Zip {
static final int BUFFER = 2048;
static boolean flag = false;
public static void main(String args[])throws IOException{
File file= new File("D:/Temp");
ZipSubdirectory(file);
FileInputStream file1 = new FileInputStream(ZipSubdirectory(file));
System.out.println(file1.toString());
}
//ZipSubdirectory函數將一個指定目錄(包括它子目錄)壓縮成一個同名壓縮文件(這里稱為"ORIGIN")
public static File ZipSubdirectory(File myDir)throws IOException{
//創建緩沖輸入流BufferedInputStream
BufferedInputStream origin = null;
//創建ZipOutputStream對象,將向它傳遞希望寫入文件的輸出流
File zipFile=new File("D:/"+myDir.getName()+".zip");
FileOutputStream fos=new FileOutputStream(zipFile);
ZipOutputStream out=new ZipOutputStream(new BufferedOutputStream(fos,BUFFER));
//dirContents[]獲取當前目錄(myDir)所有文件對象(包括子目錄名)
File dirContents[]=myDir.listFiles();
//創建臨時文件tempFile,使用後刪除
File tempFile=null;
try{
//處理當前目錄所有文件對象,包括子目錄
for(int i=0;i < dirContents.length; i++){
//使用遞歸方法將當前目錄的子目錄轉成一個ZIP文件,並作為一個ENTRY加進"ORIGIN"
if(dirContents[i].isDirectory()){
tempFile = ZipSubdirectory(dirContents[i]);
flag=true;
}
//如果當前文件不是子目錄
else {
tempFile=dirContents[i];
//flag標記tempFile是否由子目錄壓縮成的ZIP文件
flag = false;
}
System.out.println("Compress file: "+tempFile.getName());
FileInputStream fis = new FileInputStream(tempFile);
origin = new BufferedInputStream(fis,BUFFER);
//為被讀取的文件創建壓縮條目
ZipEntry entry = new ZipEntry(tempFile.getName());
byte data[]= new byte[BUFFER];
int count;
//在向ZIP輸出流寫入數據之前,必須首先使用out.putNextEntry(entry); 方法安置壓縮條目對象
out.putNextEntry(entry);
//向ZIP 文件寫入數據
while((count=origin.read(data,0,BUFFER))!=-1){
out.write(data,0,count);
}
//tempFile是臨時生成的ZIP文件,刪除它
if(flag==true){
flag = tempFile.delete();
System.out.println("Delete file:"+tempFile.getName()+flag);
}
//關閉輸入流
origin.close();
}
out.close();
} catch(Exception e){
System.out.println(e);
}
//遞歸返回
return zipFile;
}
}
來自
⑹ zip壓縮解決文件名中文亂碼有關問題怎麼解決
1.單擊桌面上的開始按鈕在搜索框中輸入winrar找到該軟體並啟動,在菜單欄中單擊【選項】標簽,選擇【設置】如下圖:
2.在彈出的設置窗口單擊【查看器】選項卡,在查看類型工作組中勾選【關聯程序】最後單擊確定即可,如下圖:
如果以上方法都無法解決問題,那麼可能是壓縮文件本身壓縮的時候出現故障導致的,請尋找下其他文件打開試試。
回答不容易,希望能幫到您,滿意請幫忙採納一下,謝謝
!
⑺ java壓縮中文zip,系統winrar解壓改中文zip會出現亂碼
建議 使用 apache ant 工具包來做壓縮,能完美的解決中文亂碼問題