Кривая кодировка в архивах
Установлена Linux Mint 14. Файлы с русскими названиями, запакованные в архивы, имеют кривую кодировку. Что делать? Unrar уже переустанавливал, не помогло. Спасибо
Смысл unrar Переустанавливать? Укажите ему лучше правильную кодировку
zip настолько старый и простой формат, что его не стали загромождать информацией о кидировке имён файлов в архиве. Есть различные патчи на zip / unzip пробуйте в теме уже ссылку дали.
И действительно, зачем вы переустанавливаете unrar, если у вас zip архив ?
зы. А все переустановки rar,7zip,zip не помогают ни фига
Рецепт для Ubuntu
Потомушо ваша Минт — это Убунта.
google://natspec zip 🙂
в ненавистном альте есть патчи на зип, в убунте есть ппа у какого-то добровольца
точно! плюсую анона. это ppa:frol/zip-i18n
Проблема решена этими командами. Спасибо. Тема закрыта.
Спасибо тебе, анонимус, это ты из первой моей ссылки выдрал ? 🙂
все же тру — по ссылкам неходят
Да ладно, и так понятно, что в данном контексте, ответ анонимуса был более доступен «что ли».
С лор вики скопировал полностью. От буквы до У до буквы l
Я обычно просто распаковываю как есть, а затем исправляю имена файлов с помощью iconv в цикле баша. Обычно там cp866 либо cp1251.
Покажи 7z l архив
sudo 7z l ‘/home/stepan/Рабочий стол/Gmail.zip’
7-Zip 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)
Listing archive: /home/stepan/Рабочий стол/Gmail.zip
— Path = /home/stepan/Рабочий стол/Gmail.zip Type = zip Physical Size = 710921
Date Time Attr Size Compressed Name ——————- —— ———— ———— ———————— 2013-04-14 21:09:34 . 26624 3242 ╨╗╨╕╤В╨╡╤А╨░╤В╤Г╤А╨░.doc 2013-04-14 21:09:34 . 267310 259163 02.jpg 2013-04-14 21:09:34 . 242537 234494 01.jpg 2013-04-14 21:09:34 . 157918 149492 03.jpg 2013-04-14 21:09:34 . 374272 63852 Hist. zar. isk.doc0.doc ——————- —— ———— ———— ———————— 1068661 710243 5 files, 0 folders
Это CP866 инфа 80%
Таки да переименовать не судьба или еще много таких архивов или файлов? Ибо это ССЗБ тот кто запаковывал.
Судьба. Просто не хочется лишний раз что-то переименовывать.
Просто не хочется лишний раз что-то переименовывать.
лучше переименовать, и забыть как страшный сон такое УГ.
Формат zip архива не сохраняет информацию о кодировке.Через iconv пробить кодировку и прикрутить костыль,если файлов мало проще вручную.
Источник
Менеджер архивов linux mint кодировка
Или просто добавить PPA-репозитарий:
и установить/обновить пакеты p7zip-full p7zip p7zip-rar.
Для решения данной проблемы можно заменить свободную реализацию RAR-архиватора на несвободную. Для этого необходимо:
- Запустить Центр приложений Ubuntu из раздела Приложения главного меню;
- В строке поиска задать unrar и выбрать предложенный пакет Unarhiver for .rar files (non-free version) ;
- Установить данное приложение;
- В строке поиска Центра приложений Ubuntu задать rar и найти Программа архивирования RAR ;
- Удалить данное приложение.
После чего проблема с неправильной кодировкой файлов в архиве должна исчезнуть. Проблема может сохраниться при условии, что в системе применяются другие архиваторы, не входящие в стандартную поставку Ubuntu 10.04 LTS.
Исправление кодировки в zip-архивах
Проблема совместимости кодировок существует давно, но побороться с ней до конца все еще не могут. Примером тому могут служить неверная кодировка mp3-тегов, кракозябры вместо сообщений в IM-клиентах (например, pidgin), а также неверная кодировка при распаковке zip-архивов, созданных в Windows. Что ж, решение первой проблемы обсуждалось в недавней статье, кодировку сообщений в IM-клиентах можно исправить либо патчами, либо выставлением в настройках кодировки «windows-1251», а что делать с архивами?
Тут вариантов несколько. Можно перейти в Windows (или попросить знакомого) распаковать zip-архив через winrar и запаковать, например, в rar. Можно установить пропатченные пакеты zip и unzip в Linux, правда найти эти пакеты последних версий не всегда легко. Есть еще один способ распаковки zip-архивов с правильной кодировкой — с помощью пакета fuze-zip и небольшого скрипта. Рассмотрим на примере Ubuntu (Linux Mint).
Теперь создадим директорию, в которую будут временно «монтироваться» наши zip-архивы:
В любом текстовом редакторе создаем файл со следующим содержанием:
/.ZIP
fuse-zip «$1» .ZIP -omodules=iconv,from_code=CP866,to_code=UTF8
nautilus
Сохранить этот скрипт можно под любым именем хоть в домашнюю директорию, хоть куда-либо еще, главное в свойствах файла не забыть сделать его исполняемым.
Теперь нужно назначить открытие zip-архивов с помощью данного скрипта.
После этого все zip-архивы, созданные в Windows, будут открываться с верной кодировкой, а работать с ними можно будет в режиме чтения и записи, то есть как будто у нас вместо архива обычная папка.
Подводные камни могут попадаться при использовании скрипта с архивами, созданными в самой Ubuntu, в этом случае можно написать другой скрипт без указания параметров кодировок.
И ещё. Есть такой проект Nautilus Filename Repairer
По скину думаю будет понятно зачем он! =)
Источник
ubuntu 12.04, кодировка в менеджере архивов.
Добрый день. Подскажите, как решить проблему с кодировкой в архивах, созданных под виндой, в которых есть файлы с русскими именами? При открытии архива — там иероглифы, при распаковке — треугольники со знаками вопроса. На 10.04 так и не смог решить эту проблему, приходилось юзать винрар под вайном 0_о Но такой геморрой снова мне не нужен. Можно вообще обойти это? PS. nautilus filename repairer — шутник еще тот.. Шило на мыло предлагает сменить: треугольники на какие-то кракозябры.
Патчи на архиватор.
А подробнее можно?
Погуглите unzip + libnatspec.
Попробуйте распаковывать архивы при помощи 7z, он иногда правильно угадывает кодировку.
Используйте convmv для того, чтобы починить кракозябрики вручную.
Скажите, а есть ли какой-нибудь архиватор без геморроя с кодировками, который можно встроить в меню, вызываемое правой кнопкой? Что можно было распаковывать архив, не заходя в него. Этакая замена менеджеру архивов дефолтному.
в альт линуксе вроде по дефолту наложены нужные патчи
Источник
Unzip без кракозябров в именах файлов
в Windows нормально разворачивается
а как это сделать в Linux?
unzip создает файл с именем типа:
�� ��� Ļ��� �ӫ��Ἴ���� �����ѡ��.xxx
пишут, что для преобразования кодировки можно применять
convmv -r -f кодировка1 -t кодировка2 *
например
convmv -r -f windows-1251 -t utf8 *
но не пойму в какой кодировке оно завернуто изначально, как это определить?
пробовал koi8r, cp866, windows-1251
не помогло
сделать бы по аналогии
Ключевое слово для поиска решения — natspec
в этом твоём файле — есть что-то секретное?
если секретного нет — можешь пожалуйста на него сылку скинуть (я просто протестю как работает моя микро-утилита «locale-unzip» для раззипоски — на этом файле)
если секретно есть.. то тогда ладно, послушаем других комментаторов..
в Windows нормально разворачивается
если в *русскоязычной* венде файл нормально разварачивается.. то думаю буду должно работать как:
# P.S.: или если не очень сложно (и например в файле есть что-то сектретное) проверь пожалуйста на своеё стороне — https://github.com/polymorphm/locale-unzip/releases .. я был бы очень тебе благодарен за это 🙂
7z тоже неправильные имена разворачивает, но другие, не такие как unzip
Ты не до конца прочитал.
Собрать unzip с флагом natspec. Ну или доустановить соответствующие либы, если бинарный дистрибутив.
Я в таких случаях раньше всегда бинарники из zip или unzip пакета от ALTLinux тащил к себе 🙂 Там все уже сделано было.
Либо внимательно читать здесь:
7z же нормально распаковывает, корректируя кодировку имен enca’й.
Если unzip собран в твоём дистрибутиве с поддержкой natspec, то распаковываться всё будет нормально, в правильной кодировке. Кроме всего прочего, 100% правильно будет распаковываться в консоли, т.е. ‘unzip arive.zip’, а вот при использовании оболочек из состава DE могут быть нюансы.
enca -L russian -g *
áâàãªæ¨ï ¯® ãáâ ®¢ª¥ ®¡à §®¢.doc: Unrecognized encoding
где-нибудь можно качнуть правильный статический unzip ?
Соберите сами. А так, вроде бы unzip статически не соберётся.
Качнуть патченный анзип — из реп альта (плюс libnatspec).
Источник
Как распаковать ZIP в Linux
В операционной системе Windows формат архивов ZIP считается чуть ли не стандартным, он даже поддерживается в этой операционной системе, что называется «из коробки». Если вы только перешли с Windows, то у вас, наверное, есть много таких архивов с различными файлами, также ZIP-архивы могут часто попадаться на просторах интернета. Поэтому работать с такими файлами в Linux вам однозначно придётся.
В этой небольшой статье мы рассмотрим, как распаковать ZIP Linux. Разберём несколько способов и воспользуемся несколькими утилитами, которые справятся с этой задачей.
Распаковка ZIP Linux
Формат ZIP был создан в 1989 году на замену очень медленному формату ARC. Здесь используется сжатие deflate, и на то время оно работало намного быстрее чем ARC. Исторически сложилось так, что стандартным форматом для Linux стали TAR и GZ — это усовершенствованные алгоритмы сжатия и архивации. Многие графические распаковки воспринимают и ZIP-файлы. Но они обрабатывают архивы не сами, а дают команду предназначенным для этого формата утилитам.
Утилита для распаковки ZIP называется unzip, она не всегда установлена по умолчанию. Но вы можете очень просто добавить её в свою систему из официальных репозиториев. Для этого в Ubuntu выполните:
sudo apt install unzip
А в системах, использующих формат пакетов Red Hat, команда будет выглядеть немного по-другому:
sudo yum install unzip zip
После установки большинство графических утилит для работы с архивами смогут распаковать архив ZIP Linux. Команда ZIP Linux установлена на случай, если вы захотите создавать ZIP-архивы.
Но этой утилите не нужны дополнительные оболочки для распаковки архива. Вы можете сделать всё прямо из консоли. Давайте рассмотрим синтаксис утилиты:
$ unzip опции файл_архива.zip файлы -x исключить -d папка
- файл архива — это тот файл, с которым нам предстоит работать;
- файлы — здесь вы можете указать файлы, которые нужно извлечь, разделять имена файлов пробелом;
- исключить — файлы, которые извлекать не нужно;
- папка — папка, в которую будет распакован архив.
Теперь рассмотрим опции утилиты, поскольку она позволяет не только распаковывать архивы, но и выполнять с ними определённые действия:
- -l — вывести список файлов в архиве;
- -t — протестировать файл архива на ошибки;
- -u — обновить существующие файлы на диске;
- -z — вывести комментарий к архиву;
- -c — извлекать файлы на стандартный вывод, перед каждым файлом будет выводиться его имя;
- -p — то же самое, только имя выводится не будет;
- -f — извлечь только те файлы, которые уже существуют на диске, и файлы в архиве более новые;
- -v — вывести всю доступную информацию;
- -P — указать пароль для расшифровки архива;
- -n — не перезаписывать существующие файлы;
- -j — игнорировать структуру архива и распаковать всё в текущую папку;
- -q — выводить минимум информации.
Все самые основные опции рассмотрели, теперь давайте рассмотрим несколько примеров работы с программой в терминале. Чтобы распаковать ZIP Linux в текущую папку, достаточно набрать:
Причём расширение указывать не обязательно. Протестировать архив можно с помощью опции -t:
unzip -tq имя_файла.zip
Вы можете протестировать все архивы в текущей папке, выполнив:
Если нужно распаковывать архив не в текущую папку, можно очень просто указать нужную:
unzip имя_файла.zip -d /tmp
Также можно распаковывать не весь архив, а только нужные файлы или файлы нужного формата:
unzip имя_файла.zip \*.txt -d /tmp
С помощью опции -l вы можете посмотреть список файлов в архиве:
unzip -l file.zip
Утилиту unzip разобрали и теперь вы с ней точно справитесь. Но я говорил, что мы рассмотрим несколько способов, как выполняется распаковка ZIP Linux. Поэтому дальше мы поговорим об утилите 7z.
Демонстрация работы утилит zip и unzip в терминале:
Как распаковать ZIP Linux с помощью 7z
7z — это кроссплатформенный набор утилит для работы с архивами. Кроме собственного формата, здесь поддерживается большое количество других, в том числе tar и zip. Плюс этой утилиты — в контекстное меню файлового менеджера будет добавлен пункт, с помощью которого вы сможете распаковывать или создавать архивы.
Для установки утилиты в Ubuntu или Debian выполните:
sudo apt install p7zip-full
А в Red Hat и CentOS:
sudo yum install p7zip
Теперь вы можете использовать контекстное меню вашего файлового менеджера, чтобы распаковать архив ZIP Linux. Также можно использовать программу в консоли. Синтаксис очень похож на unzip:
$ 7z команда опции имя_архива
Команда задаёт нужное действие. Нас будут интересовать только четыре команды:
- e (Extract) — извлечь файлы из архива;
- x eXtract — извлечь файлы из архива, сохраняя полный путь;
- l (List) — список файлов архива;
- t (Test) — проверить архив.
Теперь рассмотрим самые полезные опции:
- -o — указать папку для распаковки;
- -p — указать пароль;
- -x — не извлекать эти файлы;
- -w — указать рабочую директорию;
- -y — отвечать положительно на все вопросы;
Ну и рассмотрим примеры работы с утилитой. Сначала проверим содержимое архива:
Распаковываем архив, сохраняя структуру подкаталогов:
Или распаковываем все файлы в одну папку, игнорируя подкаталоги:
Или вы можете указать папку, в которую нужно распаковать файлы с помощью опции -o:
7z x файл.zip -o /tmp/
Выводы
В этой статье была рассмотрена распаковка ZIP Linux, как видите, это ненамного сложнее, чем распаковка стандартных архивов TAR. Мы рассмотрели два способа ,и теперь вы точно будете знать, что делать, когда столкнетесь с такой ситуацией. Если у вас остались вопросы, спрашивайте в комментариях!
Источник