воскресенье, 26 марта 2017 г.

Как исправить неверную кодировку имени файла в Linux

Исправить неверную кодировку имени файла - есть ничто иное, как переименовать файл таким образом, чтобы имя было записано в нужной нам кодировке (UTF8).



Помогает нам в этом команда convmv

convmv -f <текущая кодировка> -t --notest <нужная кодировка>  <имя файла>

синтаксис команды convmv схож с iconv: ключ -f (from), ключ -t (to)
Без ключа --notest видим итоговые имена файлов, но переименования фактически не происходит. Удобно для того, чтобы убедиться в том, что все идет как надо.

ключ --list дает возможность увидеть как называются кодировки, названия которых нам нужно указать после ключей -f и -t.

Пример, который ИМХО,  разрешает нередкую проблему, когда имя файла в кодировке cp1251 (Windows)

convmv -f cp1251 -t UTF8 --notest ./*

Доводилось видеть, когда кодировка у имени файла была изменена дважды и простой подбор с помощью convmv не дает результата.
В этом случае пользуемся универсальными кодировщиками
этимэтим или этим, чтобы выявить факт двойной кодировки и использованные таблицы кодировки.

Комментариев нет: