更具體的說,是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
比較以外的測試結果是,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
在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應該如何處理? 目前的狀態,似乎是顯示一堆問號?
请不要因为一个这样的话题 cross posting 大量列表,一下子收到很多份的感觉很。。。
请不要因为一个这样的话题 cross posting 大量列表,一下子收到很多份的感觉很。。。
對不起了……
對於文件比較少的Archive,可能亂碼也沒甚麼,但是文件很多,文件名和目錄名都中文的文件……比如下面這個文件:四书五经.zip http://ishare.iask.sina.com.cn/f/18030142.html
于 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 忽视这个警告,以使解压进行下去。
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文件,不��再有��了。
于 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 提供的解决方案。
你如何确定它是 Unicode/UTF-8 的?Windows 下几乎没有对应 Linux 下 UTF-8 的本地区位环境(locale)。winzip 里存储文件名等信息直接用的是系统本地语言设置 的编码。
我的zip文件是英語UI加英語locale的Windows 7(學校lab)下創建的,那種環境下存中文文件名,不用UTF-8/Unicode行嗎?。同一台機器的WinRAR也可以正常顯示中文文件名。 還有一個辦法,確認p7zip包已經安裝,你試下7za x winzip_11_2.zip,en_US.utf8下都一切正常。
我觉得最好的解决方案还是写好wiki/指南,指出可用的 walkaround。 就像(也许不那么像)在 Fedora 下想听 mp3 歌曲,你不能说系统 bug 导致播不了,解决方案是写wiki告诉大家这里的专利问题、以及 rpmfusion 提供的解决方案。
解釋問題的原因應該沒問題。但是(臨時的)解決方法是甚麼? 再說一次這個“四书五经.zip”的例子,古人的文章,版權應該expire了。 http://ishare.iask.sina.com.cn/f/18030142.html
提前劇透好了,該文件含多個中文名目錄,每個目錄下有多中文名文件,我除了寫簡單的Python腳本,想不到更好的辦法了。如果你能夠找到/想出更加好的辦法⋯⋯那我去寫wiki好了
个人以前的测试结果表明是 unzip *nix 的问题,在 os x 和 linux 之间使用 zip 的中文文档都会有问题,不局限于用 File Roller。
用 7z 的方案是没有问题的,哪怕用 7z 处理 zip 文件。OS X 那边用 unarchive
于是或许可以建议 File Roller 处理 zip 也用 p7z。
2012/2/8 Ma Xiaojun damage3025@gmail.com:
你如何确定它是 Unicode/UTF-8 的?Windows 下几乎没有对应 Linux 下 UTF-8 的本地区位环境(locale)。winzip 里存储文件名等信息直接用的是系统本地语言设置 的编码。
我的zip文件是英語UI加英語locale的Windows 7(學校lab)下創建的,那種環境下存中文文件名,不用UTF-8/Unicode行嗎?。同一台機器的WinRAR也可以正常顯示中文文件名。 還有一個辦法,確認p7zip包已經安裝,你試下7za x winzip_11_2.zip,en_US.utf8下都一切正常。
我觉得最好的解决方案还是写好wiki/指南,指出可用的 walkaround。 就像(也许不那么像)在 Fedora 下想听 mp3 歌曲,你不能说系统 bug 导致播不了,解决方案是写wiki告诉大家这里的专利问题、以及 rpmfusion 提供的解决方案。
解釋問題的原因應該沒問題。但是(臨時的)解決方法是甚麼? 再說一次這個“四书五经.zip”的例子,古人的文章,版權應該expire了。 http://ishare.iask.sina.com.cn/f/18030142.html
提前劇透好了,該文件含多個中文名目錄,每個目錄下有多中文名文件,我除了寫簡單的Python腳本,想不到更好的辦法了。如果你能夠找到/想出更加好的辦法⋯⋯那我去寫wiki好了
Fedora中文郵件列表:https://admin.fedoraproject.org/mailman/listinfo/chinese
于是或许可以建议 File Roller 处理 zip 也用 p7z。
已經在該Bug中提及 https://bugzilla.redhat.com/show_bug.cgi?id=787996
如果你的test case還在,也有時間,不如扔上去吧, 呵呵~
建议尝试bsdtar命令。 在 2012-2-7 下午4:22,"Ma Xiaojun" damage3025@gmail.com写道:
更具體的說,是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
比較以外的測試結果是,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
在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應該如何處理? 目前的狀態,似乎是顯示一堆問號? -- Fedora中文郵件列表:https://admin.fedoraproject.org/mailman/listinfo/chinese
ui工具在zip文件名乱码的情况下无法解压。而通过命令行可以解压出乱码文件。 在 2012-2-7 下午4:33,"Ma Xiaojun" damage3025@gmail.com写道:
建议尝试bsdtar命令。
看了一下,Fedora和LinuxDeepin都沒有“預裝”。 我當前主要的興趣還是測試各種Linux發行版都默認提供的(GUI)工具。 許多問題老手可以用很多种辦法解決,但是對新手來說,可能就是很大的麻煩了~ -- Fedora中文郵件列表:https://admin.fedoraproject.org/mailman/listinfo/chinese
但是,要说的是rar命令。有的时候可能打开但是显示里面没有文件。有的时候,里面文件会重复。就是每一个文件都会有2个。 在 2012-2-7 下午4:33,"Ma Xiaojun" damage3025@gmail.com写道:
建议尝试bsdtar命令。
看了一下,Fedora和LinuxDeepin都沒有“預裝”。 我當前主要的興趣還是測試各種Linux發行版都默認提供的(GUI)工具。 許多問題老手可以用很多种辦法解決,但是對新手來說,可能就是很大的麻煩了~ -- Fedora中文郵件列表:https://admin.fedoraproject.org/mailman/listinfo/chinese
于 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,所以不会有问题。
解决了么? 我这个archive manager 打开也是乱麻 fedora 28 改哪里哦。。。。。。
在命令行里解压缩,同时指定编码,可以吗?
Yuzhen Wang sail456852@gmail.com 于2018年10月5日周五 上午11:05写道:
解决了么? 我这个archive manager 打开也是乱麻 fedora 28 改哪里哦。。。。。。 _______________________________________________ Chinese mailing list -- chinese@lists.fedoraproject.org To unsubscribe send an email to chinese-leave@lists.fedoraproject.org Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/chinese@lists.fedoraproject.or...
chinese@lists.fedoraproject.org