博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中zip压缩包的中文处理问题
阅读量:4208 次
发布时间:2019-05-26

本文共 697 字,大约阅读时间需要 2 分钟。

java内置了对zip格式压缩文件的处理,常用的的几个类包括:

1、ZipFile

2、ZipInputStream

3、ZipOutputStream

4、ZipEntry

但在处理压缩文件中的中文入口时是会报IllegalArgumentException异常,但这并非是其不支持中文,而是因为其默认的压缩文件中的文字编码格式为unicode,而常用的压缩工具如WINZIP/WINRAR压缩后的文件中的文字编码格式为acsii,因此如果需要处理常用的ZIP文件,就必须手工来处理一下了。

常见的几种方式有:

1、修改相关类中的处理方式,关键代码如下(以ZipInputStream为例):

原代码: ZipEntry e = createZipEntry(getUTF8String(b, 0, len));

修改为:

 ZipEntry e = null;

//这里encoding是成员变量,可以在构建函数中赋值

if (encoding=null) e=createZipEntry(getUTF8String(b, 0, len));

else e=createZipEntry(new String(b, 0, len, encoding));

替换的方式也有三种:

1、创建替换类(在同一包名下),并替换rt.jar中的同名类

2、创建替换类(在同一包名下),单独打包并放在类路径中(但有些服务器可禁用java开头的包)

3、在应用中创建自己的类,随应用发布

2、使用ANT包中的org.apache.tools.zip中的相关类,但不包含ZipInputStream的对应类。

转载地址:http://dumli.baihongyu.com/

你可能感兴趣的文章
SiteScope - Agentless监控
查看>>
QTP测试.NET控件CheckedListBox
查看>>
使用QTP的.NET插件扩展技术测试ComponentOne的ToolBar控件
查看>>
用上帝之眼进行自动化测试
查看>>
为LoadRunner写一个lr_save_float函数
查看>>
PrefTest工作室全新力作-《性能测试与调优实战》课程视频即将上线
查看>>
质量度量分析与测试技术 培训大纲
查看>>
欢迎加入【亿能测试快讯】邮件列表!
查看>>
为什么我们的自动化测试“要”这么难
查看>>
LoadRunner性能脚本开发实战训练
查看>>
测试之途,前途?钱途?图何?
查看>>
测试设计与测试项目实战训练
查看>>
HP Sprinter:敏捷加速器
查看>>
单元测试培训PPT
查看>>
adb常用命令
查看>>
通过LR监控Linux服务器性能
查看>>
通过FTP服务的winsockes录制脚本
查看>>
LRwinsocket协议测试AAA服务器
查看>>
Net远程管理实验
查看>>
反病毒专家谈虚拟机技术 面临两大技术难题
查看>>