问题描述
在macOS上用unzip $ZIPFILE.zip
命令解压文件,当ZIPFILE.zip
中的路径/文件名含有中文且中文是GBK编码时,会报类似下面的错误
checkdir error: cannot create ??+?
Illegal byte sequence
unable to process ??+?/08 ??µ?????+???ĵ?µ????⵿????
原因在于macOS的默认编码是zh_CN.UTF-8
(可在terminal中使用locale
命令查看),unzip无法处理GBK编码的中文。
解决方案是使用unar软件指定编码方式解压。
解决方法
首先使用HomeBrew下载unar
brew install unar
然后使用unar的-e
参数指定GBK
编码解压
unar -e GBK $ZIPFILE.zip
说明
有时遇到unzip解压编码问题,未必原中文路径是GBK编码,需要结合实际问题分析。只是中文系统中GBK应用比较多,因此GBK引发的乱码错误也是最多的。