当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 23 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : [三星]写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题
帖子发表于 : 2011-04-13 20:15 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10149
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 130
1 任务内容: 写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题

2 任务的难度: 三星

3 任务的目的: 掌握字符集和脚本语言

4 任务所涉及的软件: 不限

5 任务将大致消耗的时间: 1-3天

6 任务思路: 转换GBK文件名到UTF-8


页首
 用户资料  
 
2 楼 
 文章标题 : Re: [三星]写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题
帖子发表于 : 2011-04-13 20:18 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10149
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 130
给一个PHP写的解压缩脚本,来源: http://micy.cn/blog/post/118
使用:
将下面的脚本存到自己home目录下的bin里面, 比如放到 ~/bin/punzip,然后 chmod +x ~/bin/punzip,以后就可以比较自由的直接调用 punzip foo.zip 来解压了。

[php]<?php
/**
* 解压含有文件名为gbk编码的zip包,到当前目录
*/
if (!extension_loaded('zip')) {
printf("php zip extension is needed. See http://www.php.net/manual/en/zip.installation.php\n", $argv[0]);
die;
}
if (!isset($argv[1])) {
printf("Usage: php %s filename\n\n", $argv[0]);
die;
}
$f = zip_open($argv[1]);
while ($e = zip_read($f)) {
$filesize = zip_entry_filesize($e);
$filename = iconv('GBK', 'UTF-8', zip_entry_name($e));
if (!$filesize) {
mkdir($filename);
continue;
} else if (!zip_entry_open($f, $e)) {
continue;
}
file_put_contents($filename, zip_entry_read($e, $filesize));
echo "$filesize\t$filename\n";
zip_entry_close($e);
}
zip_close($f);[/php]

继续寻求其他语言开发的代码。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: [三星]写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题
帖子发表于 : 2011-04-13 21:17 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
gbk都是猜的啊。这是丑陋的方法。没兴趣。
:em04


_________________
● 鸣学


页首
 用户资料  
 
4 楼 
 文章标题 : Re: [三星]写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题
帖子发表于 : 2011-04-13 22:35 
头像

注册: 2010-02-28 23:13
帖子: 717
送出感谢: 0 次
接收感谢: 1
不会, :em11


_________________
如果你使用这个链接注册dropbox,开始就比别人多250兆,我的空间也会增加。谢啦

讨厌我的人可以试着点一下

http://www.184.im


页首
 用户资料  
 
5 楼 
 文章标题 : Re: [三星]写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题
帖子发表于 : 2011-04-16 15:33 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10149
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 130
:em01 呵呵,给出Python的版本
[python]
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# file: unzip.py
import zipfile,os,sys

if len(sys.argv)==2:
fname=sys.argv[1]
else:
print "Usage: python %s filename\n\n" % sys.argv[0]
sys.exit()

if (not os.path.exists(fname)) or (not zipfile.is_zipfile(fname)):
print fname,"is not zipfile or not exists"
sys.exit()

f=zipfile.ZipFile(fname)
for finfo in f.infolist():
savename=unicode(finfo.filename,'GBK')
if os.path.exists(savename):continue
if finfo.file_size==0:
os.mkdir(savename)
else:
of=open(savename,'w')
of.write(f.read(finfo))
of.close()
print savename
f.close()
[/python]


页首
 用户资料  
 
6 楼 
 文章标题 : Re: [三星]写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题
帖子发表于 : 2011-04-16 15:36 
头像

注册: 2007-02-02 18:14
帖子: 30702
系统: debian sid
送出感谢: 1
接收感谢: 34
难得一见,呵呵,不懂纯支持~~~


_________________
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)


页首
 用户资料  
 
7 楼 
 文章标题 : Re: [三星]写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题
帖子发表于 : 2011-04-16 15:42 
头像

注册: 2010-07-16 10:26
帖子: 112
送出感谢: 0 次
接收感谢: 0 次
gbk纯粹就是多余,utf8好多了


_________________
搜索用百毒,下载用逊雷,杀毒用瑞腥,输入用馊狗,聊天用扣扣,播放用暴疯,手机用网禽,游览用癌易,微薄用新烂,上网用电性,视频用又哭,加班没工资,买房成房奴,乘着河蟹号,举着共党旗,嚼着双汇,再喝点三鹿,人生就完美了。

IE6用户的IQ最低 http://t.cn/aY7Gts 怪不得中国用ie6的人这么多,原来智商就是低于其他国家的人,甚至连苦难的非洲人民的智商都比大多数中国人高,不过这也要感谢党长期以来的愚民政策啊,人民越是愚蠢,党就越是高兴。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: [三星]写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题
帖子发表于 : 2011-04-16 21:02 
头像

注册: 2008-09-13 19:17
帖子: 7789
系统: Arch Linux (x86_64)
送出感谢: 10
接收感谢: 77
lp的bug贴上已经有打过patch过的deb包了 :em06


_________________
博客:http://www.lainme.com


页首
 用户资料  
 
9 楼 
 文章标题 : Re: [三星]写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题
帖子发表于 : 2011-04-16 21:11 
头像

注册: 2008-04-26 12:41
帖子: 11003
送出感谢: 11
接收感谢: 38
:em09


_________________
[新手必读]wubi安装常见问题(FAQ)
[分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法
kde下唯美的暗黑内透主题(无需编译)
无穷老机上的Trinity Desktop Environment


页首
 用户资料  
 
10 楼 
 文章标题 : Re: [三星]写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题
帖子发表于 : 2011-04-16 22:11 

注册: 2010-01-13 23:26
帖子: 3173
送出感谢: 0 次
接收感谢: 12
去年有一个:

http://blogs.gnome.org/happyaron/2010/0 ... encodings/


_________________
Here I am.
Ubuntu 桌面培训 - 全中文官方文档,含汉化截图,提供PDF


页首
 用户资料  
 
11 楼 
 文章标题 : Re: [三星]写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题
帖子发表于 : 2011-04-20 18:40 
头像

注册: 2009-04-11 23:46
帖子: 4141
系统: Arch Linux
送出感谢: 11
接收感谢: 125
几乎每天都有人搜索“zip 乱码”找到我博客的: http://lilydjwg.is-programmer.com/posts/16293.html


_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

我的vimrc: https://git.io/vimrc


页首
 用户资料  
 
12 楼 
 文章标题 : Re: [三星]写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题
帖子发表于 : 2011-06-07 18:35 
头像

注册: 2010-09-17 14:16
帖子: 147
送出感谢: 0 次
接收感谢: 0 次
mark :em06


_________________
--总有一条路,是通往幸福的


页首
 用户资料  
 
13 楼 
 文章标题 : Re: [三星]写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题
帖子发表于 : 2011-06-24 9:08 
头像

注册: 2006-06-01 12:42
帖子: 270
送出感谢: 0 次
接收感谢: 0 次
用ark毫无压力。
用的着重新发明一次车轮么?


_________________
世界上没有无缘无故的爱,也没有无缘无故的恨。
所以——没有人是活该被鄙视的。


页首
 用户资料  
 
14 楼 
 文章标题 : Re: [三星]写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题
帖子发表于 : 2011-06-24 12:19 
头像

注册: 2009-04-11 23:46
帖子: 4141
系统: Arch Linux
送出感谢: 11
接收感谢: 125
websnail 写道:
用ark毫无压力。
用的着重新发明一次车轮么?


ark 是 KDE 程序吧?

代码:
全部下载大小:   55.57 MB
全部安装大小:  160.90 MB


对于一个非 KDE 用户有必要么?而且,它不是脚本!我的 X 哪天崩溃了,但是急需解压个 zip 怎么办呢?


_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

我的vimrc: https://git.io/vimrc


页首
 用户资料  
 
15 楼 
 文章标题 : Re: [三星]写一个程序或脚本,解决windows下zip包在linux下解压文件名乱码问题
帖子发表于 : 2011-10-13 15:37 
头像

注册: 2008-12-23 16:38
帖子: 129
送出感谢: 25
接收感谢: 0 次
有没有傻瓜式的解决办法,不是所有的朋友都玩的来脚本。谢谢


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 23 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译