压缩文件非英文名编码解码错误

压缩文件非英文名编码解码错误

我有一个rar文件,解压后生成一个中文文件,在Nautilus中显示为:

��������ѧ.������.����������ѧ������.2008.djvu(无效编码)

在终端中显示为:

<BD><FC><B4><FA><D7><E9><BA><CF>ѧ.<CD><F5><CC><EC><C3><F7>.<B4><F3><C1><AC><C0><U+DE64><B4><F3>ѧ<B3><F6><B0><E6><C9><E7>.2008.djvu

unrar 列出的 rar 文件内容是正确的:

$ unrar l 近代组合学.王天明.大连理工大学出版 社.2008.rar    
UNRAR 3.93 freeware      Copyright (c) 1993-2010 Alexander Roshal    
Archive 近代组合学.王天明.大连理工大学出版社.2008.rar    
 Name             Size   Packed Ratio  Date   Time     Attr      CRC   Meth Ver
-------------------------------------------------------------------------------
 近代组合学.王天明.大连理工大学出版社.2008.djvu  6190416  6187189  99% 03-06-11 10:33  .....A.   98320D40 m3g 2.9
-------------------------------------------------------------------------------
    1          6190416  6187189  99%

除非我将其名称更改为 1.djvu 之类的名称,否则无法打开该文件。

为什么我可以创建中文名的目录或文件,但是压缩文件的中文名显示不正常呢?

我该怎么办呢?

感谢致敬!

答案1

图形存档程序可能不支持中文。请尝试使用命令行提取存档:

  1. 打开终端
  2. 导航到包含该文件的目录:

    cd /path/to/directory/
    

    您可以使用该键来补全文件名和目录名。如果有多个选项,Tab请双击以获取可能的补全列表。Tab

  3. 运行unrar程序进行解压filename.rar

    unrar x filename.rar
    

    这里,您也可以使用制表符补全来输入文件名。

  4. 档案的内容将在当前目录中可见。

答案2

我也遇到了同样的问题,因为 rar 文件的名称中包含西里尔字母。我可以通过重新安装来解决这个问题unrar建议在这里

$ sudo apt-get remove rar
$ sudo apt-get remove unrar
$ sudo apt-get install unrar

事实证明,Ubuntu 默认安装了开源版本的rar&unrar实用程序:“unrar 0.0.1 Copyright (C) 2004 Ben Asselstine, Jeroen Dekkers”。此版本不能很好地处理非 ASCII 符号。

重新安装后,unrar从“受限”(专有软件)存储库安装其实际版本(请注意,这应该在更新设置中启用):“UNRAR 5.40 免费软件版权所有 (c) 1993-2016 Alexander Roshal”

此版本可处理 Unicode 符号,至少对我来说,它可以处理西里尔字母。

请注意,删除 rar/unrar 的开源版本也会修复 GUI 软件的一个问题: 包含西里尔字母的 Rar 档案

答案3

文件名使用的字符编码似乎与您的环境不同。字符 ѧ(西里尔小写字母)很可能不是中文文件名的一部分。

您是否有关于创建该文件的操作系统和语言设置的任何信息?您知道哪些字符编码常用于对中文文件名进行编码吗?

如果你知道文件名的编码,你可以使用康维(默认情况下未安装)将其转换为您使用的编码(最有可能是 UTF-8)。

答案4

尝试这个:

unrar --enable-charset x $1

相关内容