Aqui está o que eu faço no Ubuntu 16.04 para descompactar um zip em qualquer codificação, desde que eu saiba o que é essa codificação. O mesmo método deve funcionar no FreeBSD porque ele depende apenas da ferramenta unzip
amplamente disponível.
-
Eu verifiquei o nome exato da codificação para não cometer erros de ortografia: link
-
Eu simplesmente corro
$ unzip -O <encoding> <filename> -d <target_dir>
ou
$ unzip -I <encoding> <filename> -d <target_dir>
escolhendo entre
-O
ou-I
de acordo com as instruções aqui:$ unzip -h UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP. ... -O CHARSET specify a character encoding for DOS, Windows and OS/2 archives -I CHARSET specify a character encoding for UNIX and other archives ...
o que significa que eu simplesmente tento
-O
e isso deve funcionar, porque muitas pessoas não criariam um arquivo.zip
no Unix ...
Então, para o seu exemplo específico:
-
O nome exato da codificação é
GB18030
. -
Eu uso o sinalizador
-O
e:$ unzip -O GB18030 gb18030.zip -d target_dir Archive: gb18030.zip creating: target_dir/【SSK字幕组】The Vampire Diaries 吸血鬼日记S06E12/ inflating: target_dir/【SSK字幕组】The Vampire Diaries 吸血鬼日记S06E12/【SSK字幕组】The Vampire Diaries 吸血鬼日记S06E12.ass
... funciona.