鳥哥的 Linux 私房菜

關於中文語系在壓縮、解壓縮後產生中文檔名破損的問題


許多朋友應該都有相同的問題,就是當使用 windows 進行壓縮後,到了 Linux 解壓縮,卻會發生一些檔名變亂碼的問題! 這還挺困擾的!最近網友提供的資料可以處理這方面的問題喔!參考看看!


发件人: "VBird" 
已发: 2016年3月10日 上午10:38
收件人: besthyhy@outlook.com
主题: Re: 文件乱码

您好:

非常棒!我能不能將您的這封 email 內容貼到網友分享區呢?
因為我覺得,應該也有不少朋友與您有相同的困擾才對! ^_^

鳥哥 敬上
------------------------------------
Personal web site: http://linux.vbird.org
E-mail:dmtsai@mail.ksu.edu.tw



---------- Original Message -----------
Sent: Wed, 9 Mar 2016 06:08:26 +0000
Subject: Re: 文件乱码

鸟哥:您好。

乱码的问题解决了。同时希望将我学到的反馈给您。

我观察到,目前的linux发行版默认情况下就能同时显示utf-8和GBK/Big5。

经过大量测试,得出的结论是:使用Windows/GBK压缩的zip文件,使用linux/UTF-8解压,就
会出现文件名损坏问题。但解压rar格式的压缩包,却不会出现问题。

我的解决方案

1.终端:unzip -O {gbk,big5} -d {target dir} {zip file}

2.x windows:我参照您网站上的教程,写了一个脚本,集成到右键菜单中。

我用的是ubuntu系统。将脚本放到~/.local/share/nautilus/scripts/里。

#!/bin/bash
#内容与功能:
#版本:
#作者与联系方式:
#建档日期:
#历史记录:
base="`echo $NAUTILUS_SCRIPT_CURRENT_URI | cut -d'/' -f3- | sed 's/%20/ /g'`"
obj="$base/${1##*/}"
unzip -O GBK -d ${obj%.zip} $obj
exit 0

发送自 Outlook Mobile



---------- Original Message -----------
发件人: VBird
已发送: 3月7日星期一 17:26
主题: Re: 文件乱码
收件人: besthyhy@outlook.com

您好:

由於中文的編碼比較特別,有多種編碼的情況,
例如繁體中文常見有 big5 與 utf8 兩種編碼格式。
因為 Linux 預設為 utf8 的編碼,因此,如果不是採用 utf8
的編碼,那麼檔名就會出現錯誤。

如果在終端機 (terminal) 的情況下想要顯示正確的檔名,
可以使用 LANG=??? 那個 ??? 表示語系,這樣應該就 OK !
如果想要轉換檔名,可能會比較複雜些!
不過,剛剛查了一下,據說有個名為 convmv
的軟體可以使用!

在 CentOS 底下可以直接用 yum install convmv 來安裝,
然後查察如何使用吧!加油!

鳥哥 敬上
------------------------------------
Personal web site: http://linux.vbird.org
E-mail:dmtsai@mail.ksu.edu.tw



---------- Original Message -----------
Sent: Mon, 7 Mar 2016 06:23:17 +0000
Subject: 文件乱码
鸟哥:您好!

我已经将linux投入生产环境中了。比起Windows,linux的效率高多了。最近我又遇到了一个
问题。那就是来自Windows的文件乱码。

问题描述:我和我的同事经常需要交换文件。他们使用Windows。我的同事传给我的文件,名
称和内容的中文部分乱码了。

自我尝试:我自己在Windows中创建几个文件,用U盘拷贝到ubuntu上,显示正常。

造成乱码问题的因素有哪些?
有哪些解决方案?
怎样判断目标文件的编码方式?(通常的方法和算法)

还望解答,感激不尽!

发送自 Outlook Mobile


   http://linux.vbird.org is designed by VBird during 2001-2015.