Интересное

Сообщение об ошибке

Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time in drupal_environment_initialize() (line 684 of /home/www/nixtalk.com/includes/bootstrap.inc).

Как изменить кодировку имен файлов

Опубликовано вт, 12/31/2013 - 14:44 пользователем Demontager

Как изменить кодировку имен файлов
Бывает так, что вам нужно переконвертировать имена файлов с одной кодировки в другую. Такое может понадобиться, к примеру если ваша система не понимает кириллицу и переводит ее не верно в utf. С такой проблемой пришлось столкнуться и мне, когда попал на компьютер один rar архив. Он был упакован не мной на каком-то хостинге не поддерживающим нормальную кодировку, при просмотре архива, все кириллические имена картинок имели такой вид

  1. Автомобильный-багажник-на-крышу-299x200
  2. Жидкости-против-замерзания-замков
  3. Дизельное-топливо-–-залог-мощи

На помощь пришел онлайн конвертер от студии Артемия Лебедева
Декодер сообщил, что имена файлов в cp1251 и при переводе в utf-8, получаем нормальные читабельные названия

  1. Автомобильный-багажник-на-крышу-299x200
  2. Жидкости-против-замерзания-замков
  3. Дизельное-топливо-–-залог-мощи

Конвертер хорош для единичных случаев, но что делать если у вас сотни, тысячи подобных файлов, не переименовывать же каждый вручную ?
На помощь придет маленькая, но очень полезная утилитка - convm
Ставим ее любым удобным методом

  1. Debian
  2. sudo apt-get install convmv
  3. Fedora/Centos
  4. yum install convmv
  5. FreeBSD
  6. cd /usr/ports/converters/convmv && make install clean

Теперь чтобы переконвертировать все имена в текущей папке и подпапках

  1. find . -type f -print -exec convmv --notest -f utf8 -t cp1251 {} \;
  2. или
  3. find . -type f -print -exec convmv --notest -f cp1251 -t utf8 {} \;

Внимание, опция --notest выполнит переконвертацию с изменением исходных файлов, поэтому рекомендую убрать ее для начала и посмотреть на тестовый результат.
Мне пришлось сначала перевести с utf8 в cp1251, а потом обратно в utf-8, так как имена файлов уже были в utf8.

category_index: 
Поделится: 

Добавить комментарий