您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

java压缩文件乱码问题

2024/4/25 4:19:21发布30次查看
用java来打包文件生成压缩文件,有两个地方会出现乱码:
1、内容的中文乱码问题:修改sun的源码。使用开源的类库org.apache.tools.zip.zipoutputstream和org.apache.tools.zip.zipentry,这两个类ant.jar中有,可以下载使用即可。
2、压缩文件注释的中文乱码问题:zos.setcomment(中文测试);通过使用设置编码的方法(zos.setencoding(gbk);)发现问题,测试项目的编码方式为gbk,而默认编码是utf-8。
org.apache.tools.zip.zipoutputstream默认使用项目的编码方式,通过setencoding方法改成gbk即可解决。
java压缩文件代码:
package com.compress; 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(); } }
更多java知识请关注java基础教程栏目。
以上就是java压缩文件乱码问题的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product