Как сменить кодировку сразу большому количеству файлов?

Для системы Linux это не представляет никакой сложности. Например, вам нужно сменить кодировку сразу нескольких HTML или PHP файлов с windows-1251 на utf-8.

В любом текстовом редакторе готовим файл сценария (это обычный текстовый файл) следующего содержания:

for i in *.htm;
                do iconv -f windows-1251 -t utf-8 "$i" > tmp;
                mv tmp "$i";
done

Назовем его скажем, recode.sh

Этому файлу надо назначить права 755 или rwxr-xr-x. Это можно сделать через интерфейс программы FTP (SFTP) или набрав в командной строке команду:

chmod 755 recode.sh

После этого копируем наш файл recode.ch в каталог, где лежат файлы, предназначенные для перекодирования и запускаем сценарий командой:

./recode.sh

Все файлы с расширением *.htm в текущем каталоге мгновенно будут перекодированы.

Если нам надо перекодировать файлы с другим расширением, например, PHP, надо просто сменить в первой строке *.htm на *.php.

Если надо перекодировать наоборот из utf-8 в windows-1251, то во второй строке пишем соответственно:

do iconv -f utf-8 -t windows-1251 "$i" > tmp;

Посмотреть, какие кодировки доступны можно из командной строки

iconv -l

Обратите внимание, что будут перекодированы только файлы в текущем, но не во вложенных каталогах.

Данный способ работает для всех версий Linux: Centos, Debian, Fedora и пр.

Автор дизайна A4j