Массовая (пакетная) перекодировка файлов из Windows-1251 в UTF-8
Иногда встает вопрос о перекодировании текстовых файлов из локальной кодировки Windows-1251 в UTF-8.
Ладно бы такой файл один, а даже пусть целых три: открываем Notepad++, меню Кодировки->Преобразовать в UTF-8. Можно преобразовать в UTF-8 без BOM, смотря какие у вас цели.
Если файлов сотни и тысячи, нужно искать пакетный перекодировщих текстовых файлов, желательно бесплатный. И такой перекодировщик есть — UTFCast Express.
Что нам предлагает программа UTFCast Express? Пакетную перекодировку текстовых файлов из форматов ASCII, UTF-16 Little Endian, UTF-16 Big Endian в UTF-8 за пару кликов.
В интерфейсе нет сложных элементов: выбираем директорию, где лежат наши файлы, каталог, куда будут сохраняться перекодированные в UTF-8 файлы. Затем выставляем галочки:
* Recursive — если в указанной директории есть подкаталоги, то обрабатывать файлы любой степени вложенности,
* Copy Unconverted — копировать ли файлы, которые обработчик не смог перекодировать в силу разных обстоятельств (не подходящий тип файла, например, .exe). Опция малополезная, потому что UTFCast не допускает совпадения директории, откуда берутся файлы (Source directory) с директорией назначения (Target directory). Кроме того директория назначения не может быть подкаталогом директории — источника файлов.
* Write BOM — обратите внимание на этот флажок. Если отметить опцию, в начало каждого перекодированного файла будут добавляться дополнительные биты, обозначающие, что файл — UTF-формата. Часто они полезны для программ Windows, а вот в ряде случаев этот флаг нужно убрать категорически. Например, если вы готовите .php и .php файлы к закачке на сервер — оставьте флажок пустым.
* Detect Only — конвертировать не будет, а просто укажет в какой кодировке файлы в директории.
* Exit When Done — выйти по завершении всех операций.