Появилась необходимость преобразовать имена файлов из одной кодировки в другую на ftp сервере. Таких файлов собралось на 1Тб и нужно было перекодировать с cp1251 на koi8-r которую хорошо читает CLI FreeBSD.
# cd /usr/ports/ # make search name='convmv' Port: convmv-1.14 Path: /usr/ports/converters/convmv Info: Convert filenames from one encoding to another Maint: kcwu@csie.org B-deps: perl-5.8.9_3 R-deps: perl-5.8.9_3 WWW: _http://j3e.de/linux/convmv/man/ # cd /usr/ports/converters/convmv && make install clean
Пользоваться утилитой легко и для начала нужно выбрать исходную кодировку и необходимую. Далее посмотрим в тестовом режиме как будет выглядеть перекодирование и если все в порядке то приступим к конвертированию.
Я знал, что все файлы загружали из Windows систем, а там как известно кодировка cp1251 ее то я и выбрал в качестве исходной и мне было нужно всего навсего выставил нужную кодировку koi8-r. Вы можете пробовать любые варианты кодировок. Приступим к проверке.
# cd /home/ftp/ # convmv -r -f cp1251 -t koi8-r Games/ Starting a dry run without changes... mv "Games/Arcade/бЕЯЕКЮЪ ТЕПЛЮ II.rar" "Games/Arcade/Веселая ферма II.rar" mv "Games/Arcade/ЯСОЕП ЙНПНБЮ.rar" "Games/Arcade/супер корова.rar" mv "Games/Arcade/ВСДН ТЕПЛЮ.rar" "Games/Arcade/чудо ферма.rar" mv "Games/Arcade/АЮЬЕМЙХ.rar" "Games/Arcade/башенки.rar" No changes to your files done. Use --notest to finally rename the files.
Как видим все в порядке файлы стали читабельны и теперь нам необходимо запустить с параметром --notest для выполнения конвертирования.
# convmv -r -f cp1251 -t koi8-r --notest Games/ ~~ Ready!