java压缩文件乱码问题,java zipfile解压文件乱码
如何解决写爬虫IP受阻的问题?立即使用。
用java打包文件生成压缩文件时,两处会出现乱码(推荐:java基础教程)
1.中文乱码问题。网上很多人都给出了这个问题的解决方案。有两种方法:修改sun的源代码;使用开源类库org . Apache . tools . zip . zip output stream和org.apache.tools.zip.ZipEntry,这两个类库在两个类ant.jar中提供,可以下载和使用。无疑,选择后者更方便。
2.压缩文件注释的中文乱码:zos.setComment(中文测试);在网上搜了半天,没看到有人解释这个问题,只好自己想办法解决了。
项目创建的测试类在自己的机器上没有问题,但是用在公司的项目上总有乱码。通过使用设置编码的方法(zos . set encoding( gbk );)终于发现问题了。测试项目的编码方式是gbk,而公司项目的默认编码是utf-8,所以测试项目没问题,公司项目有问题。
Org.apache.tools.zip.zip输出流默认使用项目的编码方法。从理论上讲,utf-8也支持中文。如果搞不清楚为什么会乱码,可以通过setEncoding方法改成gbk来解决。
附上压缩文件的代码。
包com.compress
导入Java . io . bufferedinputstream;
导入Java . io . bufferedoutputstream;
导入Java . io . data inputstream;
导入Java . io . file;
导入Java . io . file inputstream;
导入Java . io . file output stream;
导入org . Apache . tools . zip . zip entry;
import org . Apache . tools . zip . zip output stream;
公共类CompressEncodingTest {
/**
* @param args
* @抛出异常
*/
公共静态void main(String[] args)引发异常{
File=newfile(中文test . txt );
ZipOutputStream zos=new ZipOutputStream(new BufferedOutputStream(
new file output stream( zip test . zip ),1024));
放入下一个条目(新的Zipentry(中文。txt’));
data inputstream dis=new data inputstream(new BufferedInputStream(
new file inputstream(f)));
zos.putNextEntry(新zip entry(f . getname()));
int c;
while ((c=dis.read())!=-1) {
zos . write(c);
}
zos . set encoding( gbk );
Zos.setComment(中文测试);
zos . close entry();
zos . close();
}
}以上是java中解决zip压缩乱码的详细内容(附代码)。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。