解压zip包中有中文乱码的解决抛异常
来源:互联网 发布:mac seed 编辑:程序博客网 时间:2024/04/30 01:16
今天在解析支付宝的对账单zip包时(我的系统是GBK),发现抛出以下异常:
SEVERE: The RuntimeException could not be mapped to a response, re-throwing to the HTTP containerjava.lang.IllegalArgumentException: MALFORMED at java.util.zip.ZipCoder.toString(ZipCoder.java:58) at java.util.zip.ZipInputStream.readLOC(ZipInputStream.java:297) at java.util.zip.ZipInputStream.getNextEntry(ZipInputStream.java:121) at com.taikang.util.ZipFileUtil.zipDecompressing(ZipFileUtil.java:58) at com.taikang.process.bo.SdcAdapter.downFileSftp(SdcAdapter.java:422) at com.taikang.process.bo.SdcAdapter.sdcEntrance(SdcAdapter.java:83) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) at com.sun.jersey.server.impl.model.method.dispatch.VoidVoidDispatchProvider$VoidVoidMethodInvoker._dispatch(VoidVoidDispatchProvider.java:71) at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
我的方法如下,所用的jar包是rt.jar。
public static void zipDecompressing(String directory,String localPath){ try { ZipInputStream Zin=new ZipInputStream(new FileInputStream( directory), Charset.forName("gbk"));//输入源zip路径 BufferedInputStream Bin=new BufferedInputStream(Zin); String Parent=localPath; //输出路径(文件夹目录) File Fout=null; ZipEntry entry; try { while((entry = Zin.getNextEntry())!=null && !entry.isDirectory()){ Fout=new File(Parent,entry.getName()); if(!Fout.exists()){ (new File(Fout.getParent())).mkdirs(); } FileOutputStream out=new FileOutputStream(Fout); BufferedOutputStream Bout=new BufferedOutputStream(out); int b; while((b=Bin.read())!=-1){ Bout.write(b); } Bout.close(); out.close(); System.out.println(Fout+"解压成功"); } Bin.close(); Zin.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
ZipInputStream Zin=new ZipInputStream(new FileInputStream(
directory), Charset.forName(“gbk”));//输入源zip路径
这一行就可以解决zip包中包含中文文件名的需要。
0 0
- 解压zip包中有中文乱码的解决抛异常
- 解决ubuntu中zip解压的中文乱码问题
- 解决ubuntu中zip解压的中文乱码问题
- 解压rar和zip(解决中文乱码)
- Java实现Zip压缩与解压(解决中文乱码问题)
- ubuntu 解决zip解压出现中文乱码问题
- Ubuntu中解决解压zip文件中文乱码问题
- Java实现Zip压缩与解压(解决中文乱码问题)
- ubuntu下解决解压zip文件中文文件名乱码问题
- PHP解压ZIP压缩包,解决中文乱码问题
- linux解压中文zip乱码
- 【成功解决】ubuntu 12.04 解压 zip 7z rar jar 文件,文件名中文乱码的问题
- 【成功解决】ubuntu 12.04 解压 zip 7z rar jar 文件,文件名中文乱码的问题
- ubuntu13.10 归档管理器解压zip文件中文乱码问题的解决(亲测成功)
- zip压缩文件中文乱码的解决
- ubuntu下解压zip rar中文字符乱码的问题
- ubuntu 解压windows创建的zip(rar)文件中文乱码
- Linux 解压windows的zip文件出现中文乱码
- 在tableView、scrollView、collectionView上层添加一个固定的UIButton,不随其滚动
- 洛谷 P2434 [SDOI2005]区间
- mac 下安装运行 redis
- 篮球
- AI领域,中国人/华人有多牛?
- 解压zip包中有中文乱码的解决抛异常
- 洛谷 P1268 树的重量
- iOS各种宏定义
- Mac OS X 下无密钥方式连接基于L2TP协议的VPN
- display:none和visibility:hidden的区别
- UVA 10763 Foreign Exchange .
- xdoj-1011
- leetcode_[python/C++]_97_Interleaving String_动态规划
- 在Ubuntu上检查一个软件包是否安装命令