如何解决java程序解压含有中文名的zip压缩包出现乱码

Python013

如何解决java程序解压含有中文名的zip压缩包出现乱码,第1张

上次利用java自动的java.util.zip.ZipEntry和�0�2java.util.zip.ZipFile来解压zip文件,今天发现程序在读取解压文件时居然报了空指针异常,debug程序后发现时读取不到文件,产生原先是zip压缩文件中含有中文的名称,读取文件名为乱码,报找不到文件名,所以报了空指针,想到ant构建文件也有这个功能,换了apache的ant.jar居然解决了中文的问题。备份下。�0�2import java.io.BufferedReaderimport java.io.Fileimport java.io.IOExceptionimport java.io.InputStreamReaderimport java.util.Enumerationimport org.apache.tools.zip.ZipEntryimport org.apache.tools.zip.ZipFile/*** 读取zip压缩文件中文本的内容* @author fish*/public class ReadZip {public static void main(String args[]) {try {String fileName = "D:/workspace/java/src/ReadZip.zip"//构造ZipFileZipFile zf = new ZipFile(new File(fileName))//返回 ZIP file entries的枚举.Enumeration<? extends ZipEntry entries = zf.getEntries()while (entries.hasMoreElements()) {ZipEntry ze = entries.nextElement()System.out.println("name:"+ze.getName())long size = ze.getSize()if (size 0) {System.out.println("Length is " + size)BufferedReader br = new BufferedReader(new InputStreamReader(zf.getInputStream(ze)))String linewhile ((line = br.readLine()) != null) {

1.一般是软件程序解码错误。如浏览器把GBK码当成是Big5码显示,或电子邮件程序把对方传来的邮件错误解码。如果在发送时编码错误,收件者的电邮程序是不能解码的,需要寄件者的电邮程序重新编码再寄。

2.字体档案(font file)不对。

3.来源编码错误,或文件受到破坏。

4.一种语言版本的操作系统安装了另外一种语言版本的应用程序,或者应用程序安装的升级补丁的语言版本与应用程序原来安装的语言版本不一致。

5.早期单字节的应用程序在打开双字节语言的文件时不能正确识别文字的分割,在换行的地方把一个字从中分成两段,导致紧接在后面的整个一行全部都是乱码。

6.低版本的应用程序不能识别高版本的程序创建的文件。

7.由于TXD等修改文件出现内部冲突,一些修改游戏的MOD(modification)CLEO、IV补丁、真实补丁、技能补丁、升级补丁和CCI人物补丁等游戏修改软件的“Readme”“必看!”等阅读文件会出现乱码。