Как перекодировать 1251 в UTF-8? Пакетная смена кодировки файлов с windows-1251 на utf-8, массовая смена кодировки файлов
Способ 1. У меня не срабатывает.
Возникла задача перекодировать файлы сайта в формат UTF-8, а до этого данные файлы были созданы в кодировке WINDOWS-1251.
Вроде бы задача тривиальная — берем любой кодировщик и кодируем из widows-1251 в utf-8, но не тут то было, так можно делать если у нас десяток файлов.
А если файлов тысяча? Да и еще не скопом, а каждая группа в своей подкатегории
Сразу в голову приходит идея — берем пакетный перекодировщик файлов и кодируем одним мановением мыши.
Кстати хочу заметить файлы у меня лежали на виртуальном сервере, и диск с файлами был подключен как обычный сетевой диск. Т.е. без всяких фтп и прочего, хотя конечно все это есть.
И так, необходим конвертер для пакетной кодировки в UTF.
И пакетной по-настоящему, а не выбрали кучу файлов и кодируем, чтобы можно было добавлять начальную директорию, а файлы кодировались рекурсивно.
После тщательных поисков было найдено решение!
Есть замечательный бесплатный конвертер для пакетного конвертирования в UTF — UTFCast Express — http://nemcd.com/wp-content/uploads/2010/03/convert/utfcast.exe.
Он позволяет легко и быстро в автоматическом режиме перекодировать каталог и все файлы в подкаталогах. Но у него есть небольшая особенность! Так как версия Экспресс бесплатная — то она не имеет опции конвертировать в UTF-8 без BOM (BOM — Byte Order Mark, служит для идентификации кодировок UTF)
Недостаток результата конвертирования такой, что ваши PHP скрипты скорее всего не будут работать! А вот для решения этой проблемы необходимо применить вторую программку — http://nemcd.com/wp-content/uploads/2010/03/convert/utf8-bom-remover.exe — UTF-8 BOM Remover
Эта тоже замечательная программа — прекрасно справляется с удалением BOM в UTF файлах. А главное рекурсивно все содержимое каталога и подкаталогов!
Вот такой связкой можно решить такой важный вопрос.
Способ 2. У меня не срабатывает.
Для семейства Windows есть программка файловый менеджер Far Manager. Это консольный файловый менеджер. К нему есть плагины, один из которых нам и поможет с массовой перекодировкой файлов.
Это FarTrans — «плагин позволяет быстро перекодировать кириллицу в выбранных текстовых файлах, а также поменять формат конца строк на DOS (CR+LF) или UNIX (LF). В плагин встроены следующие русские кодовые таблицы: DOS Cp866, Windows Cp1251, KOI-8, Unix ISO 8859-5, Macintosh, Java Unicode (эквивалент native2ascii). Плагин также работает с таблицами, зарегистрированными в FARе. Встроена поддержка UTF-8 (русская страница). Реализована возможность автоматической замены/добавления Charset= в HTML-файлах»
Скачиваем его, устанавливаем:
1. Создайте папку FarTrans в C:\Program Files\Far\Plugins
2. Скопируйте скачанные файлы из архива в эту папку FarTrans
3. Перезапустите FAR Manager
4. Выделяйте файлы и выбирая в плагинах Transcod (он же FarTrans) указываете нужный вариант кодировки (у нас — UTF-8)
almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
Deencode utf-8 win-1251 для группового перекодирования
Представляем Вам на dle9.com ещё один полезный PHP скрипт, который поможет для группового перекодирования файлов из utf-8 в windows-1251 и наоборот windows-1251 в utf-8, принцип работы довольно прост: запишите в поле «Имя папки импортёра» произвольное имя папки ( в неё будут помещены все файлы и подкаталоги исходя из корня запускаемой утилиты, за исключением самой утилиты).
В раздел «кодировку» — устанавливается в какую кодировку вам необходимо экспортировать файлы (в скрипте имеется функция автоопределения кодировки, Вы можете даже не беспокоиться если в каталоге/подкаталогах будут находится файлы уже имеющие выставленную кодировку, с этими файлами не будет производиться действия перекодирование кодировки в саму себя, из-за чего нарушится содержимое). программа PHP Deencode utf-8 win-1251 для группового перекодирования можно установить расширения которые требуется перекодировать.
В завершении после перекодирования файлов остаётся некая память в них о предыдущей кодировки, допустим указание кодировки в хедере charset=utf-8 если оставить как есть в некоторых браузерах и текстовых редакторах выйдет не верная кодировка, поэтому в данной утилите, присутствует функция автоподмены кодировки «Менять указание кодировки» на нужную сразу после кодирования файлов, иначе говоря если будет в файле текст charset=»utf-8″, то он будет подменён на противоположное windows-1251. Также если требуется изменять кодировку у файлов имеющих отличное расширение от часто-используемого в веб, (допустим .txt .htc или другого языка программирования), то вы всегда можете задать свои расширения для которых требуется делать перекодировку, для этого просто впишите в поле свои расширения через запятую(без точки, пример: txt,htc py) .
Для установки скопируйте содержимое в папку где предполагается изменять кодировку. Дополнительная надстройка не требуется, запуск скрипта производится через файл deencode.php
Советуем для сайта dle скрипт PHP Deencode utf-8 windows-1251 группового перекодирования :
Пакетное изменение кодировки из UTF-8 в Windows-1251
Работая над проектом интернет магазина столкнулся, с проблемой кодировки в компонентах движка.Проблема была не в оригинальных файлах магазина, которые как и пологается были в кодировке UTF-8, а во врезаемых модулях которые были в кодировке CP-1251, потому что писались к предыдущим версиям CMS где всё было в кодировке Windows-1251. Кроме этого встретил модули и их модификации где была смешанная кодировка: код в Utf-8, а различные сообщения на кириллице в Cp-1251.
В начале пробовал изменять кодировку при помощи редактора Akelpad, но по неизвестной причине это не смогло решить проблему, да и файлов было довольно много подлежащих к изменению.Возникшею проблему удалось решить при помощи простой и удобной программы
⚠ Смартфоны и ← гаджеты
EncodingConverter.Разумеется, наткнулся на эту программу совершенно случайно, перекапывая различные форумы, а до этого попадались другие решение только не подходящие под мою задачу.
Моё Описание программы EncodingConverter
Для запуска программы EncodingConverter,
- открываем одноименный файл EncodingConverter. exe.
- В начале через кнопку обзор выбираем папку с файлами (в которых нужно изменить кодировку), при этом в папке могут содержаться файлы с разными расширениями и разным количеством вложенных папок.Флажок обрабатывать вложенные папки оставляем на месте.
- Затем в выпадающим списке выбираем новую кодировку. В нашем случае это Cp-1251, но можно по желанию выбрать и такие как:
- UTF-8 без BOM
- UTF-8 с BOM
- UTF-16-Le
- UTF-16-BE
- UTF-32-LE
- UTF-32-BE
- CP-1251
- В поле фильтр, нам нужно дописать те расширение файлов, в которых будем изменять кодировку. В поле уже имеется ряд масок, поэтому в начало или конец строки дописываем примерно так: *. php|*. html|*. htm и так далее, разделитель масок — это вертикальная черта.
- Перед тем как нажать кнопку начала изменения кодировки, нажмите на кнопку анализировать.
Вот так всё просто в этой программе, спасибо за это автору.Не забывайте все такие фокусы производить всегда на копиях файлов.
Где скачать EncodingConverter
А скачать эту версию программы EncodingConverter, которую я сам использую можно с моего сайта.Скачать EncodingConverterРазмер архива Zip примерно 23 KB.
Легко сохранить или поделится в:
Внимание, Бдительным!
Если вдруг ссылка стала не рабочей, пожалуйста скопируйте ссылку из адресной строки браузера на эту страницу и отправте её мне черезФорму обратной связи в теме сообщения выбрав подходящию тему.
Благодарю вас за понимание.