Кириллица после Unzip под Linux - Проблема с кириллическими
Кириллица после Unzip под Linux - Проблема с кириллическими
Здрасте Всем.
Проблема состоит в следующем есть в zip-архиве несколько файлов имена которых набраны русскими буковками, при распаковке все было бы хорошо, но вот имена бесследно теряются, т.е. нечитаемы в любой кодировке.
Подскажите, плз. есть ли unzip который сохраняет кирилические названия фалов хоть в каком-то виде?
Заранее благодарен,
Surok.
Проблема состоит в следующем есть в zip-архиве несколько файлов имена которых набраны русскими буковками, при распаковке все было бы хорошо, но вот имена бесследно теряются, т.е. нечитаемы в любой кодировке.
Подскажите, плз. есть ли unzip который сохраняет кирилические названия фалов хоть в каком-то виде?
Заранее благодарен,
Surok.
Кириллица после Unzip под Linux
iconv_unzip() {
fromcp="$1"
tocp="$2"
archive="$3"
unzip -Z1 "$archive" | while read -r ; do
newname=$(echo "$REPLY"|iconv -f$fromcp -t$tocp)
if [ ! -z "$newname" ] ; then
dirn=$(dirname "$newname")
basen=$(basename "$newname")
if [ "$dirn" != "." ] ; then
mkdir -p "$dirn"
if [ "$dirn/" != "$dirn/$basen" ] ; then
unzip -p "$archive" "$REPLY" > "$newname"
fi
fi
fi
done
}
Вызов: iconv_unzip кодировка_в_архиве кодировка_в_системе архив.zip
Список поддерживаемых кодировок: iconv -l
Естественно, что не все комбинации имеют смысл.
fromcp="$1"
tocp="$2"
archive="$3"
unzip -Z1 "$archive" | while read -r ; do
newname=$(echo "$REPLY"|iconv -f$fromcp -t$tocp)
if [ ! -z "$newname" ] ; then
dirn=$(dirname "$newname")
basen=$(basename "$newname")
if [ "$dirn" != "." ] ; then
mkdir -p "$dirn"
if [ "$dirn/" != "$dirn/$basen" ] ; then
unzip -p "$archive" "$REPLY" > "$newname"
fi
fi
fi
done
}
Вызов: iconv_unzip кодировка_в_архиве кодировка_в_системе архив.zip
Список поддерживаемых кодировок: iconv -l
Естественно, что не все комбинации имеют смысл.
/ AB
Кириллица после Unzip под Linux
Большое спасибо!!!
Но на каком это языке написано?
мне просто надо на perl это реализовать ...
Но на каком это языке написано?
мне просто надо на perl это реализовать ...
Кириллица после Unzip под Linux
Это bash. Зачем -- на перле?Quote: from ab on 10:12 - 17 Июля, 2002
Большое спасибо!!!
Но на каком это языке написано?
мне просто надо на perl это реализовать ...
/ AB
Кириллица после Unzip под Linux
Upload и разархивирование zip-файлов - это одна из функций библиотеки документов с веб-интерфейсом.
Все cgi-скрипты - на perl.
Все cgi-скрипты - на perl.
Кириллица после Unzip под Linux
Что же, как говорится, переписывание кода на Perl оставлю читателям в качестве упражнения.
Думаю, что основная идея ясна.

/ AB