Как боротся с именами файлов на кириллице в .rar в UTF-8 локали


ramok аватар

ramok - Posted on 08 Ноябрь 2007

Иногда попадаются архивы rar с русскими или украинскими именами файлов, и в UTF-8 локали возникают проблемы с разархивированием таких архивов unrar-ром. Создаются какие то странные директории и файлы не извлекаются совсем:

Решается эта проблема тем что файлы извлекаются в другой однобайтовой кодировке (например koi8-r или koi8-u), и затем с помощью утилиты convmv перекодируются в нужную кодировку.

1. Убедимся что нужная однобайтовая кодировка поддерживается. В Debian

$  dpkg-reconfigure locales

2. Установим convmv. В Debian

$  apt-get install convmv

3. Разархивируем архив в однобайтовой локали. Например:

$ mkdir rosava
$ cd rosava
$ LANG=ru_UA.KOI8-U unrar x ~mp3/Rosava-2006-Kolysanki.rar 

4. Перекодируем имена файлов

$ convmv -r -f koi8-u -t utf-8 --notest .

ВложениеРазмер
unrar-ukr-filename-in-utf8-locale-fail.jpg300.14 кб
unrar-ukr-filename-in-utf8-locale.jpg588.36 кб
5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)

Приветствую! Необходимо для победы определить, с какой же кодировке названия файлов),
вот нашел решение: по совету @Ndrejjj http://forum.ubuntu.ru/index.php?topic=31263.msg220253#msg220253 зашел на страничку декодера и получил конечный результат в виде:
Цитата
"Как нам пришлось помучиться KOI8-R → CP866"

далее в терминале открываем папку с крокозабристыми названиями и запускаем предварительно установленную прогу convmv:

$ sudo convmv -f cp866 -t utf8 --notest *
Your Perl version has fleas #37757 #49830 
mv "./01 ���㯫����.mp3"	"./01 Вступление.mp3"
mv "./02 ����� �����.mp3"	"./02 Осенний дождь.mp3"

Странно.... у меня с утф-ной локалью все нормально разархивируется если из консоли делать, а вот графическеи распаковщики действительно фигню какую-то распаковывают

У меня же что в консоле, что в гуях все нормально

а я таки переодически залезаю сюда когда попадаются архивы такие, бо таки продолжает глючить Ж:-)

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.