1 問題描述
直接
unzip xxx.zip
亂碼,肯定是編碼問題了不用問。但是unzip沒有指定編碼的選項:
網上的解決方案如下:
unzip -O GBK/GB18030CP936 xx.zip
但是沒有-O選項啊。
2 解決辦法
解決辦法是安裝unzip-iconv,筆者系統為manjaro,直接安裝會提示會與unzip沖突:
unzip-iconv是一個補丁,但是好像沒被官方接納,比如Ubuntu下的unzip是帶-O的,Archlinux與CentOS下默認沒帶,安裝unzip-iconv即可,也可以在保留unzip的基礎上打上unzip-iconv補丁包,參照這里。
安裝后,可以先指定編碼列出看看:
unzip -O gbk -l xxx.zip
這里編碼可以用小寫,有一個小的bug是,先寫-O選項的話,后面的壓縮包文件名補全不了,目前筆者還沒有找到好的解決辦法(不知道你們的會不會這樣,反正筆者的補全不了),所以,先-l補全寫上文件,再移動到前面加上-O選項。
列出文件沒問題的話,解壓就行了:
unzip -O gbk -d folder xxx.zip
-d指定解壓目錄,如果沒加目錄的話,直接unzip會把所有文件解壓到當前目錄。