Конвертация файлов KOI8-R -> UTF-8 на linux

on January 16th, 2012 by Hades | No Comments »

После перевода unix системы на UTF-8 появляется необходимость перекодировать файлы с KOI8-R на UTF-8.

Для перекодировки файлов необходимо расширить меню Midnight Commander-а (mc). В результате выбираются файлы, которые нужно перекодировать и нажимается кнопка F2, выбирается пункт “Convert from KOI8-R to UTF-8 current file” или “Convert from KOI8-R to UTF-8 tagged files” если выбрано несколько файлов. Для внесения изменений в меню Midnight Commander-а, необходимо добавить в конец файла /etc/mc/mc.menu следующие строки:

= t r
+ ! t t
i       Convert from KOI8-R to UTF-8 current file
        cp %f %f.KOI8-R
        iconv -f KOI8-R -t UTF-8 < %f.KOI8-R > %f
        rm -f %f.KOI8-R

+ t t
I       Convert from KOI8-R to UTF-8 tagged files
        for i in %t
        do
          cp $i $i.KOI8-R
          iconv -f KOI8-R -t UTF-8 < $i.KOI8-R > $i
          rm -f $i.KOI8-R
        done

Для перекодировки имен файлов с KOI8-R на UTF-8, можно использовать следующий скрипт: convert_filenames_from_koi8-r_to_utf-8.sh

#!/bin/bash

ls -1 | 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
done

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.