如何在 Linux 中提取文件名非 Unicode 的 RAR?

如何在 Linux 中提取文件名非 Unicode 的 RAR?

我有一个 RAR 档案,其文件名采用的是 GB2312 而不是 Unicode。因此,在我提取它之后,出现了许多“无效编码”警告。

据说官方实用程序可以解决这个问题,但我使用的是 Raspberry Pi,其处理器是 ARM。他们的只提供 x86 和 x64 版本官方网站

那么,如何在基于 ARM 的机器上正常提取档案?

答案1

这些作业的标准 Unix 实用程序是iconvrecode

基本上,unrar将档案放入空目录中后,检查精确的使用以下命令设置字符集file

$ file -bi MyFileName
  text/plain; charset=us-ascii

现在,您可以通过以下任一方式更改字符集

 iconv -f gb2312 -t utf8 filename > newfilename
 recode UTF-8 filename

注意:recode对文件进行操作in place,因此您可能需要在一些副本上尝试一下,然后再将其释放到真实数据上。

如果您还需要翻译文件名:

for i in *; do 
     newi=$(echo "$i" | iconv -f gb2312 -t utf-8)
     mv "$i" "newi"
done 

我不知道你是否可以使用它本身iconv作为过滤器unrar,例如

unrar YourArchive -p | iconv -f gb2312 -t utf-8 > somefile





 

相关内容