Labels

Sunday, September 23, 2012

Ubuntu Linux rar,zip压缩文件中文文件名乱码


从Windows平台传来的RAR和ZIP文件中的中文文件名采用的是GBK(网上这么说的)编码,而Ubuntu默认全系统采用UTF8编码,这就是各种乱码问题的根源。从这一点上说,Windows实在是可恶。Windows不同语言采用不同的本地化编码给国际化造成了非常大的不便,网上关于中文在Linux下乱码的求助帖子一搜搜到一大把。博主也常常把解决乱码作为博客内容。我想把各种乱码问题都汇聚起来,供后来者参考。这是第一篇。

  1. RAR文件乱码
  2. 这里说的乱码是指压缩包内的中文文件名乱码,如果是rar文件本身是乱码,请看下面的转换文件名的编码。如果安装了系统提供的比较旧的rar和unrar,首先缷载。命令为
    sudo apt-get remove rar unrar
    然后到WinRAR 的官方网站下载最新版,最新版的RAR已经解决了中文乱码的问题。地址:
    RAR 4.20 for LinuxCommand line onlyTrial916 KB
    RAR 4.20 for Linux x64Command line onlyTrial956 KB

    根据系统情况选择对应的版本。下载后cd到下载的文件所在目录。用下面的命令解压文件。
    tar xf rarlinux-*4.2.0.tar.gz 
    cd 到解压产生的文件夹,运行命令
    make
    完成安装。现在就可以正常解压RAR文件了。如
    unrar x 文件名.rar

  3. ZIP文件乱码
  4. zip文件乱码我还没找到一个一步完成的解决办法。现在得分两步走,先解压,再转文件编码:

    • 第一步 解压
    • 安装p7zip。Ubuntu软件中心里有这个软件,也可以命令行安装
      sudo apt-get install p7zip-full 
      依我看用我的方法未必需要full安装,只安装p7zip应该也可以,我电脑上已经full安装了,就不测试了。读者可以试一试。 现在打开zip文件还是乱码的。 (突然意识到不需要第一步的,直接第二步不就行了。。。。既然写了,先放在这儿吧)

    • 第二步 转换文件名编码
    • 看下一节。。。。


  • 转换文件名的编码

  • 首先、安装 convmv
    sudo apt-get install convmv
    然后cd到有乱码文件的文件夹
    convmv -f GBK -t UTF-8  --notest  *.mp3
    convmv 会判断文件是不是UTF-8编码,如果已经是了,会自动跳过。所以不用担心正常的文件会被转成乱码。(这一点很有用,在解决mp3标签乱码的时候网上推荐最多的工具不自动判断,结果把我许多原本正常的文件转成筹码了,没处说去啊当了小白鼠了,改天把那个方法也写下来,免得更多人和我一样。)

    No comments:

    Post a Comment