为什么suizip里面文件显示乱码zip都是乱码

查看: 3864|回复: 6
zip解压缩出来的文件名为什么是乱码
阅读权限90
签到天数:13 天结帖率: (34/39)
正常的手动解压都没问题,但使用 zip解压组件,解压到文件夹的文件名是乱码,然后打开文件里面的内容(有汉字)却没有乱码,是什么原因?
尝试以下解决方案都不行:
1.把所有文件名及地址改成英文
2.去除循环也不行
3、解压到根目录也不行
4.原来用的好压,又安装的winrar也不行
求助,以下是详细代码
.支持库 spec
.支持库 eCompress
.子程序 _按钮1_被单击
.局部变量 是否创建成功, 逻辑型
.局部变量 a, 整数型
.局部变量 b, 文本型
.局部变量 n, 整数型
a = 到整数 (编辑框1.内容)&&' 建几个文件夹
调试输出 (a)
b = “C:\Documents and Settings\Administrator\桌面\新建文件夹1\”
.计次循环首 (a, n)
& & 是否创建成功 = 创建目录 (b + “daihuan” + 到文本 (n))
& & .如果 (是否创建成功 = 真)
& && &&&信息框 (“创建成功” + 到文本 (n), 0, , )
& && &&&信息框 (“创建失败” + 到文本 (n), 0, , )
& & .如果结束
& & ZIP压缩1.解压 (“C:\Documents and Settings\Administrator\桌面\yyy.zip”, b + “daihuan” + 到文本 (n))
& & 处理事件 ()
.计次循环尾()
补充内容 ( 11:13):
使用的是xP系统
补充内容 ( 14:31):
好了,不用回答了,已经好了,也不知怎么试的,晕
可以试试用 WinRAR 压缩之后再用易语言的解压。我的也是这么弄好的乱码!用好压出现乱码,用WinRAR不出现。
回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至
可获得加分喔。友情提醒:本版被采纳的主题可在
帖子申请荣誉值,获得 1点 荣誉值,荣誉值可兑换终身vip用户组哦。快捷通道: →
阅读权限10
可以试试用 WinRAR 压缩之后再用易语言的解压。我的也是这么弄好的乱码!用好压出现乱码,用WinRAR不出现。
您可以选择打赏方式支持他
阅读权限90
签到天数: 13 天结帖率: (34/39)
试了半天,不知怎么搞的弄好了。
补充内容 ( 16:14):
解压出来的是乱码,应该是当初文件压缩时,压综的不标准,试了多次,在压缩文件时注意下多试几次,就不会是乱码了。
您可以选择打赏方式支持他
阅读权限30
我也想知道是什么原因,能告诉我一下么,我的用api解压出来的,中文都是乱码
您可以选择打赏方式支持他
阅读权限90
签到天数: 13 天结帖率: (34/39)
我也想知道是什么原因,能告诉我一下么,我的用api解压出来的,中文都是乱码
多试几次吧,试了半天也不知道怎么试对了,但肯定不是名子英文或中文的问题,解压到文件夹里面的文件名子,或内容都正常。
您可以选择打赏方式支持他
阅读权限90
结帖率: (15/16)
楼主,我也是这问题,请问你是怎么解决的呢
您可以选择打赏方式支持他
阅读权限90
签到天数: 13 天结帖率: (34/39)
楼主,我也是这问题,请问你是怎么解决的呢
多试试吧,自己也搞不清,反正后来试好了。
您可以选择打赏方式支持他
精易论坛 - 有你更精彩 /1
踩楼有什么奖品?点击查看
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪
违法和不良信息举报电话,QQ: ,,邮箱:@
Powered by
粤公网安备 252017年11月 其他开发语言大版内专家分月排行榜第二2016年12月 其他开发语言大版内专家分月排行榜第二
2009年7月 总版技术专家分月排行榜第二2009年3月 总版技术专家分月排行榜第二2009年1月 总版技术专家分月排行榜第二2005年7月 总版技术专家分月排行榜第二2005年5月 总版技术专家分月排行榜第二2005年3月 总版技术专家分月排行榜第二
优秀小版主2015年8月优秀小版主2015年9月优秀小版主2015年5月优秀小版主2015年2月论坛优秀版主
2017年11月 其他开发语言大版内专家分月排行榜第二2016年12月 其他开发语言大版内专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。压缩文件里面的文件变成了乱码是怎么回事及解决办法?
您的位置: >
压缩文件里面的文件变成了乱码是怎么回事及解决办法?
更新时间:
压缩文件里面的文件变成了乱码怎么办?一般遇到文件是乱码的情况可能是压缩文件本身的问题,也可能是我们解压不当造成的问题,下面小编为大家介绍以下相关解决办法。
当我们双击打开压缩包里的压缩文件时,是操作系统系统调用相关的程序来打开压缩包里面的文件。
具体情况:打开压缩包的文件,只能是先将压缩包解压,然后双击才能正常打开。如果是直接双击压缩包里的文件,不知是什么原因,双击压缩包里的文档、图片都不能正常打开,打开后全部显示是乱码。为什么双击压缩包里的文件,会是乱码呢?原因就在于误设置了使用WinRAR的查看器来打开压缩包里的文件。
压缩文件打开是乱码的解决办法
要解决双击能正常打开压缩包里的文件,而不是乱码的问题,可以先启动WinRAR软件,然后单击上面的菜单&选项&&&设置&&&查看器&选项卡,在&查看器类型&栏目里选中&关联程序&选项即可解决双击打开压缩文件为乱码的问题。
如果以上方法都无法解决问题,那么可能是压缩文件本身压缩的时候出现故障导致的,我们可以寻找下其他文件打开试试。
分享网址:
直接复制分享给好友
快捷操作:ZipEntry出现乱码的问题?? - ITeye问答
new ZipEntry(filename);
时,filename中有中文字符时,中文字符在压缩文件里是乱码.
采纳的答案
换成apache的zip就没有这个问题了,相关的类都在ant包里,import更新如下:
// import java.util.zip.ZipE&
// import java.util.zip.ZipOutputS&
import org.apache.tools.zip.ZipE&
import org.apache.tools.zip.ZipOutputS&
已解决问题
未解决问题博客分类:
private static String getUTF8String(byte[] b, int off, int len) {
// First, count the number of characters in the sequence
int count = 0;
int max = off +
while (i & max) {
int c = b[i++] & 0
switch (c && 4) {
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
// 0xxxxxxx
case 12: case 13:
// 110xxxxx 10xxxxxx
if ((int)(b[i++] & 0xc0) != 0x80) {
throw new IllegalArgumentException();
// 1110xxxx 10xxxxxx 10xxxxxx
if (((int)(b[i++] & 0xc0) != 0x80) ||
((int)(b[i++] & 0xc0) != 0x80)) {
throw new IllegalArgumentException();
// 10xxxxxx, 1111xxxx
throw new IllegalArgumentException();
if (i != max) {
throw new IllegalArgumentException();
// Now decode the characters...
char[] cs = new char[count];
while (off & max) {
int c = b[off++] & 0
switch (c && 4) {
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
// 0xxxxxxx
cs[i++] = (char)c;
case 12: case 13:
// 110xxxxx 10xxxxxx
cs[i++] = (char)(((c & 0x1f) && 6) | (b[off++] & 0x3f));
// 1110xxxx 10xxxxxx 10xxxxxx
int t = (b[off++] & 0x3f) && 6;
cs[i++] = (char)(((c & 0x0f) && 12) | t | (b[off++] & 0x3f));
// 10xxxxxx, 1111xxxx
throw new IllegalArgumentException();
return new String(cs, 0, count);
以上是ZipInputStream读取有中文条目的zip包时会抛出异常的方法,该方法有两个while循环,第一个是统计条目名 字符数count,第二个是用UTF-8算法解码byte数组,提取到字符串 一切不是UTF-8的字符串直接抛异常,由于中文系统默认编码是GBK 所以条目名含有中文时直接抛异常。
不知道编码是提倡用循环统计 还是“变长数组”,该方法可以改成如下:
private static String getUTF8String(byte[] b, int off, int len) {CharArrayWriter caw=new CharArrayWriter();
int i = 0;
while (off & max) {
int c = b[off++] & 0
switch (c && 4) {
// 0xxxxxxx
caw.append((char) c);
// 110xxxxx 10xxxxxx
caw.append((char) (((c & 0x1f) && 6) | (b[off++] & 0x3f)));
// 1110xxxx 10xxxxxx 10xxxxxx
int t = (b[off++] & 0x3f) && 6;
caw.append((char) (((c & 0x0f) && 12) | t | (b[off++] & 0x3f)));
// 10xxxxxx, 1111xxxx
throw new IllegalArgumentException();
char[] ch=caw.toCharArray();
return new String(ch, 0, ch.length);
也就是把统计字符数改成CharArrayWriter类,利用它的“数组扩展特性”,该类默认分配初始数组为32大小,个人认为是比较合理的。不知各位比较支持哪种编程方法。
其次我们再来讨论乱码的问题。其实String类里面就封装了byte解码的功能了,这里不知道作者为什么要自己实现解码,还不负责任的抛异常 难道是想表现一下自己的技术?用字符串的解码 可以改成如下:
private static String getUTF8String(byte[] paramArrayOfByte, int paramInt1, int paramInt2)
return new String(paramArrayOfByte, paramInt1, paramInt2,"UTF-8");
}catch(UnsupportedEncodingException e){
e.printStackTrace();
return "encoding error!";
怎么样,够简单吧。
为了能够让用户自行设置编码,可以增加一个成员变量,增加一个方法 于是改成这样:
private static String filenameEncoding=Charset.defaultCharset().toString();//默认使用系统默认编码
public static void setFilenameEncoding(String encoding){
filenameEncoding=
private static String getUTF8String(byte[] b, int off, int len) {
return new String(paramArrayOfByte, paramInt1, paramInt2,filenameEncoding);
}catch(UnsupportedEncodingException e){
e.printStackTrace();
return "encoding error!";
这样就“完美”了。
后记:以上代码楼主亲自测过功能没有问题 不过不知道为什么SUN不写成这样,写此博文旨在跟大家交流,楼主的语文学得不好 尽请见谅 希望大家能看懂意思并发表意见就好了。
论坛回复 /
(0 / 1650)
yangxiutian
浏览: 36583 次
实用!完美解决了我的问题
其实IE浏览器有这个功能的,把网页保存成mht格式的文件,遇到 ...
楼主,HELP
对于.JPEG的图片不能转换啊,提示找不到文件。
这是输出结果,明显不对啊,这里放64位编码///64M//
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'}

我要回帖

更多关于 zip解压乱码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信