Кракозябры в именах папок, сохранённых в юникоде

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

MVV писал(а):Ведь можно сразу в ИГП открыть список имён в редакторе и сменить кодировку файла.
Правильно. Похоже, я неоднозначно сформулировал: под словами "создать файл-список" имел в виду именно это, а не загрузку из заранее слеланного до открытия ИГП списка. Мы создаём список исходных имён во временном файле, тут же открываем его в заданном редакторе, вносим изменения, сохраняем список в нужном нам виде, и тогда по закрытии редактора имена автоматически загружаются в ИГП, а временный файл удаляется.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Ciber SLasH
Сообщения: 209
Зарегистрирован: Сб авг 20, 2005 21:41
Откуда: С.-Петербург

Сообщение Ciber SLasH »

MVV писал(а):Ciber SLasH,
1. Выделяешь файлы,
2. Ctrl+M,
3. Кнопочка с изображением буфера обмена справа от поля выбора регистра,
4. Редактировать имена...
5. Правишь файл с именами, как надо, чтобы имена отображались, и сохраняешь,
6. Подтверждаешь операцию переименования.
Именно так я и сделал. Конвертацию сделал на том сайте.
Аватара пользователя
Ciber SLasH
Сообщения: 209
Зарегистрирован: Сб авг 20, 2005 21:41
Откуда: С.-Петербург

Сообщение Ciber SLasH »

А есть ли возможность находить файлы с испорченной кодировкой в именах средствами поиска в ТС (с плагинами) и на полуавтомате переименовывать их?

Такие грабли с именами возникают при копировании информации R-Studio с разделов от MacOS на виндовый раздел в NTFS.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Ciber SLasH писал(а):А есть ли возможность находить файлы с испорченной кодировкой в именах средствами поиска в ТС
Поиск с плагинами:
TC | Имя | Рег. выраж. | ^[^a-zа-я0-9\[\]\(\)\$\^\+\-\.%&!@#'=`~_ ]
либо
unicodetest | Тест юникодности | != | ANSI
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Ciber SLasH
Сообщения: 209
Зарегистрирован: Сб авг 20, 2005 21:41
Откуда: С.-Петербург

Сообщение Ciber SLasH »

Flasher
TC | Имя | Рег. выраж. | ^[^a-zа-я0-9\[\]\(\)\$\^\+\-\.%&!@#'=`~_ ]
Сработало без первой крышки.
Второй вариант не пробовал.

Благодарю!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Ciber SLasH писал(а):Сработало без первой крышки.
Добавим пару символов:

Код: Выделить всё

[^a-zа-я0-9\[\]\(\)\$\^\+\-\.:;%&!,@#'=`~_ ]
Второй вариант побыстрее.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
c930
Сообщения: 326
Зарегистрирован: Ср дек 15, 2004 06:55

Сообщение c930 »

У меня немного другая "проблема". Прислали ZIP-архив.
В архиве есть каталог с именем на русском языке (ну даже их два таких, один в подкаталоге). Так вот если из TC или "Проводника" заходить в этот архив, то данный каталог отображается кракозябрами. А если его открыть в WinRARе - то нормально по-русски.
В чём проблема м.б., и как поправить дело, чтоб в TC тоже адекватно отображалось?

P.S. пробовал в TC 8.01-8.51, WinRAR - 4.20/5.01, ОС Win7 x32.
Если в WinRARе смотреть свойства данного ZIP-архива, то там указано, что базовая ОС - UNIX.
Распаковывается также соответственно, как и отображается.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

По стандарту в ZIP имена должны быть в кодировке OEM. Видимо, в этом архиве это не так. И сделать, видимо, можно лишь одно - перекодировать имена. Но проще перепаковать файлы в новый архив.
c930
Сообщения: 326
Зарегистрирован: Ср дек 15, 2004 06:55

Сообщение c930 »

MVV
Т.е. архив "неправильный" стало быть.
Сам архив мне как таковой не нужен, то и перепаковывать его нет необходимости.
Файлы тоже WinRARом достаются корректно (т.е. имя того злополучного каталога получается по-русски, в ANSI кодировке).
Но вот за TC обидно. Но раз это из-за "неправильного" архива, то ладно.
С др. стороны кто-то этот "неправильный" архив создал - видимо "неправильный" архиватор какой-то.
Аватара пользователя
Ciber SLasH
Сообщения: 209
Зарегистрирован: Сб авг 20, 2005 21:41
Откуда: С.-Петербург

Сообщение Ciber SLasH »

Всё бы неплохо, но фильтр пропускает файлы, в имени которых есть буква "й". Как это победить?
Сейчас такой Reg:

Код: Выделить всё

[^a-zа-я0-9\{\}\[\]\(\)\$\^\+\-\.:;%&!,@#'=`~_№«»®–\x85\x92\x97\xA0\xAD ]
Как и раньше: нужно найти файлы, в имени которых присутствуют символы не из ANSI-набора.

Добавление буквы "й" или \x{01B7} или \x{01B6} в набор - не меняет ничего.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Ciber SLasH
Конечно, пропускает (не ищет). й - это обычная кириллица (вполне себе ANSI), входящая в диапазон. Толку от ещё одного добавления в список символьных исключений нет никакого. Чтобы помимо юникодных символов искать обычные, нужно их из диапазона исключить. Диапазон идёт в алфавитном порядке. Значит, вместо а-я пишем а-ик-я. Либо й| перед [^...

А лично для себя я некогда вывел такую формулу:

Код: Выделить всё

[^!-‚-›‘’–—\x{0080}-\x{00FF}\x{0400}-\x{04FF}\x{20A0}-\x{20CF}\x{2100}-\x{214F}\w]
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Ciber SLasH
Сообщения: 209
Зарегистрирован: Сб авг 20, 2005 21:41
Откуда: С.-Петербург

Сообщение Ciber SLasH »

Что-то не понимаю. Задача такая: найти все файлы/папки с кракозярами в именах.
Сейчас у меня такой фильтр:
TC | Имя | Рег. выраж. | [^a-zа-я0-9\[\]\(\)\$\^\+\-\.%&!@#'=`~_ ]
он пропускает имена с буквой "й". Вероятно буква "й" в именах файлов из юникода - поэтому и пропускает.
[^й|a-zа-я0-9\{\}\[\]\(\)\$\^\+\-\.:;%&!,@#'=`~_№«»®–\x85\x92\x97\xA0\xAD ] - имена с буквой "й" пропускает
[^a-zа-ик-я0-9\{\}\[\]\(\)\$\^\+\-\.:;%&!,@#'=`~_№«»®–\x85\x92\x97\xA0\xAD ] - имена с буквой "й" пропускает
[^!-‚-›‘’–—\x{0080}-\x{00FF}\x{0400}-\x{04FF}\x{20A0}-\x{20CF}\x{2100}-\x{214F}\w] - выводит вообще не понятно что:
Изображение
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Ciber SLasH писал(а):Вероятно буква "й" в именах файлов из юникода - поэтому и пропускает.
Так это нормально. Важно искать имена, где встречается хотя бы один юникодный символ. Иначе смысл?

Выражение сейчас лучше задавать в поле "Искать файлы:" с отметкой соотв. опции (без плагинов).
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Ciber SLasH
Сообщения: 209
Зарегистрирован: Сб авг 20, 2005 21:41
Откуда: С.-Петербург

Сообщение Ciber SLasH »

Тогда другой вопрос.
Раз в нормальные имена файлов попадают юникодные символы, то как отсортировать файл, в имени которых кракозябры?
Т.к. у меня получается портянка очень длинная: 6046 файлов и 70 папок.
И как-то в этом безобразии нужно найти кракозябры и декодировать их в нормальные имена.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Ciber SLasH писал(а):то как отсортировать файл, в имени которых кракозябры?
В каком смысле "отсортировать"?
Ciber SLasH писал(а):И как-то в этом безобразии нужно найти кракозябры и декодировать их в нормальные имена.
ИГП + wdx_translit.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить