Проблема с кириллицей у unzip

Здесь обсуждаются все вопросы, не попадающие под другие категории
Kerk
Заглянувший
Сообщения: 4
Зарегистрирован: 13 июн 2005, 21:23
Контактная информация:

Проблема с кириллицей у unzip

Сообщение Kerk »

Встала необходимость реализовать возможность просмотра содержимого zip-архивов на сайте.
В перл-скрипте делаю "unzip -l archive.zip" и беру его консольный вывод.
В именах файлов вместо русских букв мусор.
Как бороться?

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

перекодировать-таки... Как и чем - тебе как веб-программисту лучше знать ;)
man tr
man perl
man iconv
Опыт растет прямо пропорционально выведенному из строя оборудованию

Kerk
Заглянувший
Сообщения: 4
Зарегистрирован: 13 июн 2005, 21:23
Контактная информация:

Сообщение Kerk »

Угу. Только вот какая там кодировка в выводе unzip? ;) :)

Аватара пользователя
Speccyfan
Неотъемлемая часть форума
Сообщения: 540
Зарегистрирован: 18 дек 2004, 15:15
Откуда: Polotsk
Контактная информация:

Сообщение Speccyfan »

Наверноя такая в какой туда (в zip) что-то запихнули ;) Вообще не создавайте имена русскими буквами и будет вам счастье.
Best Regards, Yury Konovalov aka Speccyfan (2:453/53)
Registered Linux User #379588

Kerk
Заглянувший
Сообщения: 4
Зарегистрирован: 13 июн 2005, 21:23
Контактная информация:

Сообщение Kerk »

Если б была такая, то и перекодировать бы не пришлось. Этот InfoZip'овский unzip кодировку портить. По поводу не создавания совет хороший, но невыполнимый :)

Аватара пользователя
Speccyfan
Неотъемлемая часть форума
Сообщения: 540
Зарегистрирован: 18 дек 2004, 15:15
Откуда: Polotsk
Контактная информация:

Сообщение Speccyfan »

Так проверь кодировки их не так много ;) скорее всего тогда там 866
Best Regards, Yury Konovalov aka Speccyfan (2:453/53)
Registered Linux User #379588

Kerk
Заглянувший
Сообщения: 4
Зарегистрирован: 13 июн 2005, 21:23
Контактная информация:

Сообщение Kerk »

Проблема частично решается вот такой серией перекодировок:

$s = decode("cp1252", $s);
$s = encode("cp437", $s);
$s = decode("cp866", $s);
$s = encode("cp1251", $s);

Но некоторые буквы заменяются на "?".
Вот тут можно посмотреть: http://kladovka.net.ru/index.cgi?pid=list&rid=61
:)

Ответить