古早的时候,可以用 -O GBK:

    1. unzip -O GBK file.zip

    如今发现 unzip 已查无此参。
    此时,可用 convmv 转码:

    1. LANG=C 7za x your-zip-file.zip
    2. convmv -f GBK -t utf8 --notest -r .

    第一条命令用于解压缩,而LANG=C表示以US-ASCII这样的编码输出文件名,如果没有这个语言设置,它同样会输出乱码,只不过是UTF8格式的乱码(convmv会忽略这样的乱码)。第二条命令是将GBK编码的文件名转化为UTF8编码,-r表示递归访问目录,即对当前目录中所有文件进行转换。作者:Latm Ake
    链接:https://www.zhihu.com/question/20523036/answer/35225920
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    1. CONVMV(1) CONVMV(1)
    2. NAME
    3. convmv - converts filenames from one encoding to another
    4. SYNOPSIS
    5. convmv [options] FILE(S) ... DIRECTORY(S)
    6. OPTIONS
    7. -f ENCODING
    8. specify the current encoding of the filename(s) from which should be converted
    9. -t ENCODING
    10. specify the encoding to which the filename(s) should be converted