mbmc.net
当前位置:首页 >> zipEntry 乱码 >>

zipEntry 乱码

apache自带的zip方法有缺陷,没有做中文的判断的,这个是它的一个已知bug。 解决办法:用jdk的rt.jar里面的方法实现就可以了。 可以参考下以下工具类: import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java....

上次利用java自动的java.util.zip.ZipEntry和??java.util.zip.ZipFile来解压zip文件,今天发现程序在读取解压文件时居然报了空指针异常,debug程序后发现时读取不到文件,产生原先是zip压缩文件中含有中文的名称,读取文件名为乱码, 报找不到文...

这个是字符集的问题,新建ZipEntry名称时用 new String(name.getBytes(), "utf-8")转换下字符集。 utf-8不行就用gbk。

File.OpenRead(sourceFilePath) 你看能不能指定打开方式?使用支持中文的编码打开.

看不出你的代码原因 不过以我的经验是两个方 1.是Encoding.Unicode.GetString(buffer); Encoding调中文时要用Unicode 2.是Convert.ToBase64String(gzBuffer); Convert调中文时要转为ToBase64String

debug一下,看看filepath输出什么,看看下面这个代码 import java.io.*; import java.util.zip.*; public class Zip { static final int BUFFER = 2048; static boolean flag = false; public static void main(String args[])throws IOExceptio...

1.一般是软件程序解码错误。如浏览器把GBK码当成是Big5码显示,或电子邮件程序把对方传来的邮件错误解码。如果在发送时编码错误,收件者的电邮程序是不能解码的,需要寄件者的电邮程序重新编码再寄。 2.字体档案(font file)不对。 3.来源编码...

统一使用utf-8吧 1:再压缩前,要设置linux模式, 需要使用第三方ant-1.8.2.jar 如果是文件目录,则 zipEntry.setUnixMode(755);//解决linux乱码 如果是文件,则 zipEntry.setUnixMode(644);//解决linux乱码 然后在输出时强制设置编码: ZipOutput...

你输出的文件后缀弄错了喂。。压缩是压缩成ZIP文件埃干嘛用TXT。 你把你生成的文件后缀改成ZIP再打开就没问题了。

没做过压缩程序,JAVA里面的字符串使用的编码为unicode,ZIP文件里面用的应该是本地编码(中文操作系统用的是GB2312)。 你可以尝试着用类似这样的语句:String str = ( otherStr.getBytes("GB2312") ); 祝好运。

网站首页 | 网站地图
All rights reserved Powered by www.mbmc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com