于 2012年02月07日 19:13, Ma Xiaojun 写道:
> 请不要因为一个这样的话题 cross posting 大量列表,一下子收到很多份的感觉很。。。
對不起了……
對於文件比較少的Archive,可能亂碼也沒甚麼,但是文件很多,文件名和目錄名都中文的文件……比如下面這個文件:四书五经.zip
http://ishare.iask.sina.com.cn/f/18030142.html
你不觉得,从 file roller 开发者的角度来讲,问题/bug 不在他们那里吗?
乱码本身是因为旧的/现有的/还在使用的 zip 工具压缩时存储文件名等元信息时没有
统一到UNICODE(或者任何别的标准),只是简单的存成了与OS和本地设置相关的
字节串。
walkaround 的方法也很多,比如用 perl/python 脚本后处理,修改 zip 代码
用 iconv 或其他库做编码转换。有个 unzip 工具有个 -O 选项可以让用户指定编码,
只是 Fedora 带的 PKZIP 没有这个特性。
我对你提供的测试文件,在 F16 下命令行下做了测试:
$ ls
winzip_11_2.zip
$ unzip winzip_11_2.zip
Archive: winzip_11_2.zip
????.txt: mismatching "local" filename (??????.txt),
continuing with "central" filename version
extracting: ????.txt
$ echo $?
1
$ ls
winzip_11_2.zip 中文測試.txt
可以看到中间是有警告信息的,unzip 返回值是 1 也代表非正常退出。
使用 file roller 时,它会看到这个警告/错误,而不会继续下去。
我感觉 file roller 就是一个简单的统一的压缩解压工具前端,它没有检测编码
的任务。
我觉得至多你可以请求 file roller 忽视这个警告,以使解压进行下去。
--
alick
Fedora 16 (Verne) user
https://fedoraproject.org/wiki/User:Alick