于 2012年02月07日 16:22, Ma Xiaojun 写道:
更具體的說,是Archive内的文件名亂碼問題。
Google到的一個相關網頁 http://superuser.com/questions/60379/linux-zip-tgz-filenames-encoding-proble...
上面這個鏈接比較有營養的内容,可能有以下這些: 1、tar, 7z, zip, rar或早或晚都已經支持Unicode/UTF-8 2、tar和zip的問題,可以嘗試用Python的tarfile、zipfile http://docs.python.org/library/tarfile.html http://docs.python.org/library/zipfile.html
我們學校Lab的英文UI,英文locale的Windows,裝的壓縮軟件有WinZip 11.2、WinRAR 3.93。我用這兩個程序分別創建含中文文件名的zip和rar文件 http://dl.dropbox.com/u/45139465/winzip_11_2.zip http://dl.dropbox.com/u/45139465/winrar_x64_3_93.rar
链接打不开,可否直接将 .zip 文件发给我一份。
比較以外的測試結果是,File Roller處理那個rar文件無問題;處理那個zip文件,Fedora的File Roller文件名顯示問號,而LinuxDeepin無問題。 Fedora下zip -sf winzip_11_2.zip無問題(locale是en_US.utf8),説明zip文件應該已經是Unicode/UTF-8。 因爲rar文件已經顯示正常,沒有進一步inspect
-sf 是什么意思?创建分卷压缩?
在Fedora上用LANG=XXX file-roller winzip_11_2.zip改變locale沒有變化,於是我給Fedora報了bug https://bugzilla.redhat.com/show_bug.cgi?id=787996
Anyway,最重要的問題,是中文Linux用戶常用的GB或Big5儲存文件名的Archive,File Roller應該如何處理? 目前的狀態,似乎是顯示一堆問號?
问题只在尝试在 Linux UTF-8 环境下解压 Windows GB2312 下创建的zip压缩文件, 或者反过来才存在。问题在于 Windows zip 格式压缩时使用了区域编码,Linux 下 zip客户端 不会做这一转化。
rar 格式内部对文件名总是使用 UNICODE,所以不会有问题。