Java ZIP壓縮和解壓縮檔案(解決中文檔名亂碼問題)
阿新 • • 發佈:2018-11-02
Java ZIP壓縮和解壓縮檔案(解決中文檔名亂碼問題)
Java ZIP壓縮和解壓縮檔案(解決中文檔名亂碼問題)
學習了:http://www.tuicool.com/articles/V7BBvy
引用原文:
JDK中自帶的ZipOutputStream在壓縮檔案時,如果檔名中有中文,則壓縮後的 zip檔案開啟時發現中文檔名變成亂碼. 解決的方法是使用apache-ant-zip.jar包(見附件)中的ZipOutputStream和ZipEntry. 即,匯入類: import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipOutputStream; 並且注意,壓縮之前呼叫 ZipOutputStream的out.setEncoding(System.getProperty("sun.jnu.encoding")); 方法, 系統引數sun.jnu.encoding表示獲取當前系統中的檔名的編碼方式.這裡將ZipOutputStream的檔名編碼方式 設定成系統的檔名編碼方式. 解壓時,直接使用JDK原來的ZipInputStream即可. 但是有個 需要注意 的地方是,在讀取ZIP檔案之前,需要設定: System.setProperty("sun.zip.encoding", System.getProperty("sun.jnu.encoding")); 將系統的ZIP編碼格式設定為系統檔名編碼方式,否則解壓時報異常. (網上,還有修改ZipInputStream原始碼的方式貌似太麻煩了,參考:http://zwllxs.iteye.com/blog/871260) ZIP程式碼參考http://szhnet.iteye.com/blog/199059,有修改.