Как перекодировать 1251 в UTF-8

Раздел: Программы, Советы
Написано: 25.03.2010
Автор: Antonio

Возникла задача перекодировать файлы сайта в формат UTF-8, а до этого данные файлы были созданы в кодировке WINDOWS-1251.

Вроде бы задача тривиальная — берем любой кодировщик и кодируем из widows-1251 в utf-8, но не тут то было, так можно делать если у нас десяток файлов.

А если файлов тысяча? Да и еще не скопом, а каждая группа в своей подкатегории!

convert to utf-8 no BOM


Сразу в голову приходит идея — берем пакетный перекодировщик файлов и кодируем одним мановением мыши.

Кстати хочу заметить файлы у меня лежали на виртуальном сервере, и диск с файлами был подключен как обычный сетевой диск. Т.е. без всяких фтп и прочего, хотя конечно все это есть.

И так, необходим конвертер для пакетной кодировки в UTF.

И пакетной по-настоящему, а не выбрали кучу файлов и кодируем, чтобы можно было добавлять начальную директорию, а файлы кодировались рекурсивно.

После тщательных поисков было найдено решение!

Есть замечательный бесплатный конвертер для пакетного конвертирования в UTF — UTFCast Express — скачать конвертер UTFCast Express.

Он позволяет легко и быстро в автоматическом режиме перекодировать каталог и все файлы в подкаталогах. Но у него есть небольшая особенность! Так как версия Экспресс бесплатная — то она не имеет опции конвертировать в UTF-8 без BOM (BOM — Byte Order Mark, служит для идентификации кодировок UTF)

Недостаток результата конвертирования такой, что ваши PHP скрипты скорее всего не будут работать! А вот для решения этой проблемы необходимо применить вторую программку — скачать utf8-bom-remover.exe — UTF-8 BOM Remover

Эта тоже замечательная программа — прекрасно справляется с удалением BOM в UTF файлах. А главное рекурсивно все содержимое каталога и подкаталогов!

Вот такой связкой можно решить такой важный вопрос.

До этого я пересмотрел программы:
Smart Recoder 1.6.2b — не работает с UTF-8
TEA 26.2.0, TEA 27.0.1 — крутой редактор, но я не понял как его можно применить для этих целей, хотя некоторые пишут что можно
Encoding Master 1.63 — можете попробовать, но при добавлении моей директории он подвисал
Notepad++ (NPP) — классный, гибкий редактор, но как таковой рекурсивной простой и удобной перекодировки нет, но можно легко убирать BOM
AkelPad — можно вручную сохранять в UTF-8 без BOM
коммандер FAR с плагином FarTrans — при обработке 1010 файлов php плагин вылетал в течении 3-х секунд, пробовал несколько раз
Ansi2Uni — классный маленький конвертер, но с несовсем рекурсией
Russian Anywhere 4.62 — навороченный конвертер, но как-то не пошел
Kaboom — вроде было все что нужно, вот только с рекурсией не удалось
UTF8_convert — минимум кнопок, но нет возможности выключать BOM
ABConverter — не работает с UTF

Если есть желание и возможности заплатить 30$, то рекомендую купить платную версию UTFCast Professional очень мощный, гибкий и удобный конвертер (по крайней мере мне так показалось)

P.S. не кодируйте .htaccess дабы не познать проблем

Поделиться с друзьями или в соц.сетях (спасибо)
Ещё похожие заметки:

39 комментариев

Анатолий
Июл 17, 2010 06:34

Здравствуйте,
ссылки устарели у Вас,а мне нужно перекодировать закладки из IE в FireFox -то есть там кодировка 1251 , а тамUTF-8 ….может я неправильно делаю импорт в Мазилу?
Закладки не читаемы,в гугле тоже много всего,но нет конкретики…
спасибо за прочтение.

 
Antonio
Июл 20, 2010 10:32

Анатолий, спасибо за ваш комментарий,
файлы перезакачал (действительно потерялись при переездах).

По поводу вашего вопроса странно, не должно такого быть,
обычно экспорт и импорт проходят без проблем.

Как вы делаете импорт?

Смотрите, как должно работать — в Мозилле — Закладки — Управление закладками — Импорт и резервирование — Импорт из HTML — Microsoft Internet Explorer

Это при условии что в IE у вас сейчас они есть, если же их там нет, можно попробовать импортировать в IE, а потом как я написал выше.

 
Айгор
Окт 10, 2010 12:45

Пробовал не работает ((( после заливки на сайт пустая страница

 
Antonio
Окт 11, 2010 01:20

BOM убирали в UTF?
и нужно смотреть на ошибки в логах, чтобы понять в чем дело

 
веб кодер
Дек 2, 2010 21:12

Почему после использования Вашей утилиты кодировка файлов меняется обратно на ANSI ? :)

 
Antonio
Дек 3, 2010 00:37

не знаю что вы делали, но у меня работало так как нужно

 
Евгений
Дек 23, 2010 13:47

Спасибо. Все работает. Скорость перекодировки впечатляет!

 
Antonio
Дек 23, 2010 23:50

=)

 
Борис
Янв 3, 2011 01:19

А ещё есть «Штирлиц» Тоже мощный редактор с множеством кодировок

 
Antonio
Янв 4, 2011 00:45

Штирлица знаю, пробовал и его,
возможно забыл его написать, но это классика его и так знают :-).
но вот эта связка порвала все остальные программы ;)

 
Alex
Янв 5, 2011 21:13

> но вот эта связка порвала все остальные программы
совершенно с вами согласен! отлично работает связка! спасибо!

 
Antonio
Янв 6, 2011 02:05

*THUMBS UP*
пожалуйста!

 
Designaero
Фев 18, 2011 20:08

после полной перекодировки всего сайта в панели управления — одни кракозяблы, по содержанию сайта — все ок, но css не работает.

 
D@nilYcH
Май 25, 2011 23:14

Спасиб =) о

 
Павел
Июл 11, 2011 20:38

Спасиба ! ;)

 
ifitows
Июл 14, 2011 08:30

Antonio, благодарю за представленный материал. Действительно, очень простой и удобный инструмент.

 
Юрий
Сен 7, 2011 14:29

Большое спасибо за информацию. Всё выручило, всё помогло. *BRAVO*

 
Antonio
Сен 7, 2011 22:55

*YAHOO* *THUMBS UP*
рад что помог

 
Сергей
Сен 16, 2011 15:47

Кстати utfcast в версии 1.5 тоже может записывать без BOM и даже про рекурсию было написано, но мне это не нужно.
Спасибо за обзор.

 
Петр
Дек 31, 2011 10:18

Уважаемый, скажите пожалуйста что вы посоветуете мне для пакетной перекодировки наоборот , из UTF-8 в WINDOWS-1251 ? Страниц более 4 тыс .
Спасибо.

 
Antonio
Янв 22, 2012 13:46

Петр, то что удалось найти (не считая разные методы рекурсивного использования iconv)

отличная программа — призер конкурсов, очень много возможностей (даже слишком много как мне показалось.. :-) )

TextPipe — единственный недостаток она платная, но в триальном режиме вроде бы позволяет сделать то что нужно.

 
Петр
Фев 6, 2012 18:54

Спасибо, пока испытал «iconv», результатом доволен, за исключением малопонятного не синтаксиса.
Рекомендуемую вами программу «TextPipe» скачал, разбираюсь, там действительно настолько много всего. что трудно понять простому , требует изучения.

 
юзер
Фев 29, 2012 16:33

в новой версии….там есть галочка без БОМ….., только вот странно он кодирует как бы и вовсе не кодирует…,
и потом даже если Sourse указать, тока что отконвертированный каталог..,опять находит ANSI.

 
юзер
Фев 29, 2012 21:32

а нет….всё работает!!
всему виной галочка: copy unconverted- я решил почему-то что это копировать даже неконвертированные файлы. *CRAZY*

в ansi вот, там в другие можно в utf-8 тоже, тока там надо чётко указывать какая была и в какую преобразовать :
anton-pribora.ru/recoder/
web-sam.narod.ru/

 
Аноним
Апр 28, 2012 13:13

Спасибо за подсказку! Два часа искала в Инете и пыталась перекодировать сайт с кодировкой Windows-1251. Notepad2 не помог. А с вашей помощью несколько десятков страниц за считанные секунды перекодировались =) .

 
Antonio
Апр 28, 2012 14:37

=) , пожалуйста,
с нотепадом конечно это делать дольше

 
Den
Фев 9, 2013 16:28

Спасибо! Полезный пост. Как раз столкнулся с такой же проблемой.

 
Алексей
Июн 14, 2013 00:33

Бесповоротное и бескомпромисное спасибо!

 
Эдвард
Окт 20, 2014 19:54

Вообще не занимаюсь созданием и кодировкой PHP>>> использовал для изменения кодировки субтитров, чтоб на телевизоре работали… Ничего кроме этой проги не помогло. Спасибо. Но после прочтения коментов-понял: не тем я занят в жизни %) :(

 
Antonio
Окт 20, 2014 22:42

:-D пожалуйста

 
JS
Янв 2, 2016 18:25

Спасибо! Реально работает и скорость высокая.

 
Vladimir
Июн 16, 2016 18:57

Пакетный конвертер текстов [Win 1251-Unicode UTF-8] и не только
Бесплатная программа с открытыми исходниками, позволяет конвертировать в UTF-8 и обратно из всех распространенных кодировок, может добавлять и удалять BOM. Все те же возможности, что в UTFCast Pro и даже еще больше, только бесплатно — найти в гугле можно по фразе hexladen пакетный конвертер

 
AlexAtHome
Сен 5, 2016 23:09

Спасибо за советы.
Столкнулся с проблемкой: отправленные с Windows-ноута файлы txt не всегда корректно отображались со своей кириллицей в iOS (на iPad).
Оказалось, что корректно открываются только файлы, созданные на ноуте в юникоде (в UTF-8).
Скачал предлагаемые тут две программки.
Однако, почитав пост выше — от Vladimir, я побродил по нету.
И понял: время идёт, и уже родился на Земле некий Толик, который написал для задач перекодирования больших объёмов текстовых файлов (пакетами) очень маленькую и шуструю программку под Windows, «весящую» всего 130КБ и открывающуюся без установки (как бы Portable):
tolik-punkoff.com/2016/03/01/paketnyj-konverter-tekstov-win-1251-unicode-utf-8-i-ne-tolko/
Проверил — работает очень хорошо и быстро.
Одно пояснение: до перекодирования там нужно самостоятельно задать «маску файлов». Я написал там *.txt.
И всё сразу пошло! Все мои txt-файлы были определены в исходной папке, и моментально в выходной папке все файлы предстали в UTF-8.
Попробовал потом нажать на «Удалить BOM». В моём случае это было излишним: прога показала, что BOM в моих файлах и так нету :). =-O

 
Antonio
Сен 7, 2016 07:56

AlexAtHome,
спасибо за отзыв =)

 
AlexAtHome
Дек 5, 2016 21:56

Вернулся сюда к вам, потому что вдруг «пакетный Толик» из моего предыдущего поста перестал перекодировать весь задаваемый пакет: в UTF-8 перекодируется только первый файл из всего пакета, остальные почему-то остаются неперекодированными (остаются в Win-1251 ANSI), хотя в проге отображается, что все файлы пакета сконвертированы и перемещены в новую целевую папку.
А рекомендуемый Вами UTFCast, хотя и требует инсталляции (в отличие от «портабельного» Толика), но справился со всем пакетом без проблем (как раньше было у Толика).
Однако, Толик по-прежнему очень быстро и правильно поснимал BOM во всём пакете после работы UTFCast.

Проверяю я всю эту работу «контрольными открываниями» отдельных файлов в AkelPad: в нижнем баре там сразу видно в какой кодировке, с BAM или без BAM кодирован у меня кириллический текст.

 
AlexAtHome
Дек 6, 2016 23:28

Дописываю:
Оказывается,
txt-файлы, содержащие «в теле» только одну латиницу (без кириллицы) после отработки в «пакетном Толике»
превращаются в 1251 (ANSI-кириллица). Поэтому я и подумал, что «Толик» теперь стал обрабатывать только первый файл из пакета:
у меня в пакете после первого файла (с кириллицей) шли несколько штук файлов с латиницей.

В отлчие от Толика, предлагаемая Вами «связка»: инсталлируемый utfcast.exe+»портабельный» utf8-bom-remover.exe
действительно «превращают» ВСЕ файлы (всего пакета) из 1251 в UTF-8 NO BOM, независимо от того — содержат они «в теле» кириллицу или латиницу.
Поэтому «для чистоты» процесса ваша связка предпочтительнее.
Короче, я свои проблемы решил. Спасибо большое.

 
Павел
Апр 7, 2017 16:25

Не получилось перекодировать файлы в нужный вид. Кодировка файла меняется, а текст остаётся не изменным, мне нужно конвертировать текст в файлах, а не просто сменить кодировку.

 
Antonio
Апр 11, 2017 22:38

Павел, значит что-то не так делаете.
Если файлов не много, то можете попробовать Notepad++ там перекодировка делается очень просто.

 
Толик
Дек 26, 2017 23:46

Благодарю за отзывы!
>txt-файлы, содержащие «в теле» только одну латиницу […]
Латиница в UTF-8 и латиница в ANSI, это одно и то же, и кодируется латиница так же 1 байтом :) Поэтому файл с одной латиницей и «не перекодируется». Вот в UTF-16 — все кодируется двумя байтами, там латиница выглядит как 0x00КодСимвола 0x00КодСимвола 0x00КодСимвола…

 

Написать

Копирование информации с сайта возможно только с указанием прямой ссылки - https://nemcd.com