Работая с коллегами, пользующимися альтернативными операционными системами, :) временами приходится иметь дело с файлами, имена которых повредились после передачи через Сеть. Моя Debian-система работает на LANG=ru_RU.UTF-8
, так что самая частая головная боль — это кодировка cp1251, тяжёлое наследие Windows98 в России.
К моему личному великому удовольствию, в Debian присутствует утилита, которая позволяет изменить кодировку имён файлов, которые уже лежат на вашем жёстком диске. Она называется convmv.
Дополнительно, бывает проблема получить читаемый список файлов на FTP-ресурсах, где выставлена кодировка, отличающаяся от UTF-8. Для Krusader, которым я пользуюсь в качестве FTP-менеджера по умолчанию, всё решается элементарным пунктом меню «Вид» -> «Выбрать кодировку».
convmv to the rescue
Присутствует в репозитариях для squeeze:
# aptitude install convmv
Выполняется достаточно удобно, но, по-моему, контринтуитивно. Удобнее всего все файлы с повреждёнными именами тем или иным образом собрать в одном каталоге и из этого каталога вызвать convmv следующим образом:
$ convmv -f cp1251 -t UTF-8 *
В случае, если файлы повредились насмерть, то звёздочка может оказаться единственным выходом.
По умолчанию convmv не меняет имена файлов после своего запуска — только пишет результат, который получится при заданных настройках. Как и всегда с кодировками, надо тыкать почти наугад, пока на экране не появится что-то читаемое. :) Для того, чтобы изменение произошло, convmv надо будет запустить ещё раз с флагом --notest:
$ convmv --notest -f cp1251 -t UTF-8 *
При общении с Windows-системами в России самые частые кодировки, которые будут попадаться, это cp1251, cp866 и koi8-r.
благодарю!
ОтветитьУдалить