[FZH] file-roller(Archive Manager)的亂碼問題

alick alick9188 at gmail.com
Tue Feb 7 13:15:02 UTC 2012


于 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


More information about the Chinese mailing list