java压缩文件乱码问题,java zipfile解压文件乱码

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: