За последние 24 часа нас посетили 62172 программиста и 1795 роботов. Сейчас ищут 827 программистов ...

Как перекодировать несколько файлов из windows-1251 в UTF-8.

Тема в разделе "PHP для новичков", создана пользователем RomanBush, 5 мар 2008.

  1. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Мож кому пригодится.
    Например, для перевода сайта из кодировки windows-1251 в UTF-8.
    Мой рецепт - под windows, из командной строки (или из-под far'а).
    for %a IN (*.php) do iconv -f windows-1251 -t utf-8 "%a" >tmp| move tmp "%a"
    разберём:
    for %a IN (*.php) - обозначает, что надо пройтись по всем файлам по маске внутри скобок (), в нашем случае *.php, имя каждого файла запихнуть в переменную %a и :
    do iconv - выполнить для этого файла команду iconv с параметрами:
    -f windows-1251 - из какой кодировки перекодируем;
    -t utf-8 - в какую кодировку перекодируем;
    "%a" - какой файл перекодируем - для этого и запихивали имя файла в переменную.
    И, в связи с тем, что iconv перекодированный файл выводит на экран, а нам нужно в файл,
    >tmp - перенаправляем вывод в файл. Но не в тот же, а во временный.
    А теперь, после перекодирования, нужно заменить оригинальный файл временным, который перекодирован:
    | move tmp "%a"
    Всё.
    Ссылки по теме:
    libiconv
    findutils