在Linux中打开一些ZIP压缩包,不可避免的情况就是乱码。数款命令行工具(如7za
、unzip
)和软件(如KDE的Ark),甚至借助Wine来使用Windows下的7-Zip,结果都一样。
出现这种问题,正是因为该压缩包是在Windows下创建的,且可能使用了WinRAR等软件。这样的压缩包,只会使用Windows的默认编码GB18030(或GBK)。然而上述Linux下的工具却不支持,最多只能支持ANSI等西方编码,甚至连iconv
也无法处理命令行工具所输出的GB18030文件列表(可能被那些工具当UTF-8处理了)。
好在,Archlinuxcn源提供了一个修改版的unzip
,名为unzip-iconv
,在官方版本的基础上集成了编码转换工具iconv
的功能。
添加Archlinux源后可以直接安装,也可考虑从AUR安装:
1 |
|
相较于原版,这个版本多了两个参数:
1 |
|
其中,-O CHARSET
用于指定打开DOS、Windows和OS/2下创建的压缩包时,使用的字符集;-I CHARSET
则用于UNIX和其他环境下创建的压缩包。
据此,编码问题迎刃而解:
1 |
|
- 本文作者: 爱拼安小匠
- 本文链接: https://anclark.github.io/2020/12/11/Struggle_with_Linux/解决Linux下zip压缩包乱码的问题/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0(署名-非商用-禁止演绎 3.0) 许可协议。转载请注明出处!