Re: Распаковывать ZIP с русскими именами
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Mikhail Ramendik пишет:
> Всем привет!
>
> Устаовлен etch, локаль koi8-r. Супруга качает zip-ы, внутри которых
> файлы с русскими именами, запакованные в виндах (вероятно CP1251? или
> UTF8?). И ей нужно файлы распаковывать, причём желательно в GUI. И
> получать те же русские имена
>
> Вопрос - как бы это сделать?
>
> --
> Yours, Mikhail Ramendik
Помниться там для русского языка двойная перекодировка нужна. Мне
помогает такой скрипт:
#!/usr/bin/perl
foreach $z (@ARGV) {
$d = substr($z, 0, -4);
$zt = `unzip -d $d $z`;
@files = ($zt =~ /(?<=inflating: ).*?(?=\s*$)/mg);
&decode_names(@files)
}
exit;
sub decode_names {
foreach $i (@_) {
$new_name =
`echo -n $i | iconv -f cp1252 -t cp850 | iconv -f cp866`;
($i eq $new_name) || rename($i, $new_name);
print "\textracted: $new_name\n";
}
}
- --
Andrey Tataranovich
public key: 0x2EE7EF82
key server: x-hkp://pgpkeys.pca.dfn.de
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAki/c4cACgkQ/icmBC7n74IuegCglAGR1wFaJnHgj7DNGCYqOzZ4
yHQAn25k2FAOIAMYrKo+Neb6X4hRXmcF
=WAz5
-----END PGP SIGNATURE-----
Reply to: