• 技术文章 >Java >Java基础

    java压缩乱码

    angryTomangryTom2019-11-15 11:50:16原创1137

    java压缩乱码

    通常用java来打包文件生成压缩文件后会出现内容的中文乱码问题,这个问题网上很多人给出了解决方法,主要有两种方法:

    一是修改sun的源码;

    二是使用开源的类库org.apache.tools.zip.ZipOutputStreamorg.apache.tools.zip.ZipEntry,这两个类ant.jar中有,可以直接下载使用即可。

    毫无疑问,选择后者更方便,org.apache.tools.zip.ZipOutputStream默认使用项目的编码方式,理论上讲utf-8也是支持中文的,若还是乱码,通过setEncoding方法改成gbk即可解决

    示例代码如下:

    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.DataInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    
    import org.apache.tools.zip.ZipEntry;
    import org.apache.tools.zip.ZipOutputStream;
    
    public class CompressEncodingTest {
        /**
         * @param args
         * @throws Exception
         */
        public static void main(String[] args) throws Exception {
            File f = new File("中文测试.txt");
            ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(
                new FileOutputStream("zipTest.zip"), 1024));
            zos.putNextEntry(new ZipEntry("中文.txt"));
            DataInputStream dis = new DataInputStream(new BufferedInputStream(
                new FileInputStream(f)));
            zos.putNextEntry(new ZipEntry(f.getName()));
            int c;
            while ((c = dis.read()) != -1) {
                zos.write(c);
            }
    
            zos.setEncoding("gbk");
            zos.setComment("中文测试");
    
            zos.closeEntry();
            zos.close();
        }
    }

    php中文网,大量的免费Java入门教程,欢迎在线学习!

    以上就是java压缩乱码的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java 压缩乱码
    上一篇:java中的常见异常有哪些 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • java怎么解决乱码• java下载的文件名乱码• java字符乱码怎么办• eclipse打开java文件出现乱码
    1/1

    PHP中文网