一个小问题:
作zip压缩的时候发现压缩完成的文件打不开,经排查发现被压缩的文件,其文件名都变成了乱码(英文和数字没事,中文的不行)。自己分析可能是编码冲突:java内部统一编码为unicode但是winrar只能按照ASCII进行文件名解析。各位有办法解决吗??手头没书,俩眼一摸黑....
//代码如下
public boolean zipFile(File from, File to) {
try {
FileInputStream fin = new FileInputStream(from);
BufferedInputStream bin= new BufferedInputStream(fin);
FileOutputStream fout = new FileOutputStream(to);
ZipOutputStream out = new ZipOutputStream(fout);
byte buffer[] = new byte[1024 * 4];
                int bytesread = 0;
                String s =  from.getPath();
                s=s.substring(from.getParent().length(), s.length());
                ZipEntry entry = new ZipEntry(s);
               
                out.putNextEntry(entry);
                while ((bytesread = bin.read(buffer))!=-1)
                 out.write(buffer, 0, bytesread);
                out.close();
                fin.close();
                bin.close();
return true;
} catch (Exception e) {
return false;
}
}