LINUX.ORG.RU

[tar][кодировка] Задать кодировку при сжатии


0

2

Как задать кодировку для tar + bzip2?
пример: tar cvjf ./archive.tar.bz2 ./dir
бзипуем папку с русскими именами файлов
получаем архив, пытаемся его распаковать под оффтопиком
вместо русских имён получаем фарш из символов

★★★★

Для таких целей лучше 7zip, потому что внутри себя он хранит имена в UTF-16, а при работе преобразует их в локаль и обратно.

ilias ()
Ответ на: комментарий от annulen

zip, на минуточку, хранит имена в той локали, где его создали.

ilias ()

Настройками локали плюс указанием опции --format=posix. С этой опцией tar автоматически перекодирует имена файлов из кодировки локали в UTF-8 при создании архива и обратно при распаковке.

AEP ★★★★★ ()
Ответ на: комментарий от AEP

Не получается: локаль en_US.UTF-8, пакую файл с русским именем с опцией --format=posix и при распаковке в win7 получаю каракули.

void ()
Ответ на: комментарий от void

> при распаковке в win7 получаю каракули

Проблема win7. Вероятно, tar под win7 собран без поддержки iconv или не умеет определять системную кодировку для имен файлов, и поэтому просто не перекодирует ничего. О проблеме надо сообщить авторам той сборки tar, которой Вы пользуетесь.

AEP ★★★★★ ()
Ответ на: комментарий от AEP

а, понял. Видимо архиватор (не tar), которым я распаковывал архив на win7, не поддерживает эту опцию.

void ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.