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

alick alick9188 at gmail.com
Wed Feb 8 03:22:15 UTC 2012


于 2012年02月07日 21:39, Ma Xiaojun 写道:
>> walkaround 的方法也很多,比如用 perl/python 脚本后处理,修改 zip 代码
>> 用 iconv 或其他库做编码转换。有个 unzip 工具有个 -O 选项可以让用户指定编码,
>> 只是 Fedora 带的 PKZIP 没有这个特性。
> 
> 如果用戶能玩轉這些,估計也不會用File Roller了。對於File Roller的目標用戶,他們需要直觀的GUI解決方案。
> 
>> 我对你提供的测试文件,在 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 也代表非正常退出。
> 
> 看來是Fedora的unzip有bug?我再研究一下。至少這種已經是Unicode/UTF-8的zip文件,不應該再有問題了。
> 
你如何确定它是 Unicode/UTF-8 的?Windows 下几乎没有对应 Linux 下 UTF-8
的本地区位环境(locale)。winzip 里存储文件名等信息直接用的是系统本地语言设置
的编码。

当然,因为如此,不只是中国人,法国人、俄罗斯人当在文件名中使用非ASCII码
字符时
也会遇到问题。问题的根源是过去的 zip 实现没有很好的按照标准。
我觉得最好的解决方案还是写好wiki/指南,指出可用的 walkaround。
就像(也许不那么像)在 Fedora 下想听 mp3 歌曲,你不能说系统 bug
导致播不了,解决方案是写wiki告诉大家这里的专利问题、以及 rpmfusion
提供的解决方案。

-- 
alick
Fedora 16 (Verne) user
https://fedoraproject.org/wiki/User:Alick


More information about the Chinese mailing list