Лучше поздно чем никогда, решил перевести пару серверов на UTF-8, в связи с чем возникла проблема перекодировки русских имён файлов и текстовых файлов. Решил поделиться скриптами. Итак, для перекодировки имён файлов с KOI8-R в UTF-8, вот такой скрипт, который перекодирует файлы в текущем каталоге.
convert_filenames_from_koi8-r_to_utf-8.sh:
Для перекодировки файлов решено было расширить меню Midnight Commander-а (mc) соответствующим пунктом. Т. е. выбираются файлы, которые нужно перекодировать, нажимается кнопка F2, выбирается последний пункт. Для внесения изменений в меню Midnight Commander-а, необходимо добавить в конец файла /etc/mc/mc.menu следующие строки:
Сервера на FreeBSD наверное были?
Только они сейчас вроде на KOI8-R остались. К слову сказать, это самый что не на есть костыль на мой взгляд (Я про KOI8-R). Я вот уже мечтаю когда во freebsd (обещают вроде в 8.10 уже) сделают нормальную поддержку UTF-8 вместо устаревшего кои…
> Сервера на FreeBSD наверное были?
Нет, CentOS, но как-то ещё с 8-ой Красной Шапки повелось, все были в KOI8-R, потом таки решились
Во FreeBSD тоже жду не дождусь UTF-8, т. к. абсолютно согласен с костыльностью KOI8-R, о чём говорит история появления данной кодировки
>Во FreeBSD тоже жду не дождусь UTF-8, т. к. абсолютно согласен с костыльностью KOI8-R, о чём говорит история появления данной кодировки
Кстати, не знал что в CentOS когда-то тоже был koi8-r
Я не так давно в компьютерной сфере, и такие исторические моменты не знаю. Какова история появления koi8-r? ☺
> Кстати, не знал что в CentOS когда-то тоже был koi8-r
Дело в том, что изначально там UTF-8, но локаль можно поставить любую, а так как все остальные были в KOI8-R, то естественно переводили, дабы не разводить зоопарк, да и все наработки в KOI8-R были.
SteelRat
А так можно «окучить» всю папку /home
find /home -name «*» | while read name ; do
newname=`echo $name | iconv -f KOI8-R -t UTF-8`
if [ "$name" != "$newname" ] ; then
echo «$name => $newname»
mv -f «$name» «$newname»
fi
VladVons
Предлагаю свое решение перекодировки файлов transmission UTF8 для тех у кого консоль KOI8.
Суть такова:
Перекодируем папку с файлами transmission кодировки UTF8 в «нормальную (KOI8)» папку утилитой iconv.
Файлы не копируются, а только создаются KOI8 symlink на файлы transmission с кодировкой UTF8
После этого можно по SAMBA или FTP забирать как обычно.
У меня торрент файлы закачиваются в папку /mnt/data1/share/Public/Torrent/Download.
В папке /mnt/data1/share/Public/Torrent/Convert будут уже переконвертированные в KOI8 ссылки на UTF8 источник
FileToSymLinkConvert.sh
Вариант конечно, но я бы не называл «кормальной» кодировку KOI8-R, она родилась как костыль, и уже сколько лет можно нормально использовать UTF-8, без занятия перекодировками и прочим костылестроением. Нужно лишь однажды решиться и отказаться от KOI8-R
.