Questions and Hints about Linux software: Конвертирование кучи страничек из UTF-8 в WINDOWS-1251.

Ноя 26th, 2009 | Posted by | Filed under FreeBSD, Linux, Linux, PC, Q&H, Software, Software, Ubuntu, Unix and BSD

Сегодня решил наладить свой старый сайт http://aleksanders.newmail.ru/. Некоторое время назад администрация newmail.ru изменила какие-то настройки и сайты, сделанные в кодировке UTF-8 стали отображаться в виде непонятных закорючек и ромбиков. Возникла потребность массовой конвертации.Первое, что пришло в голову — вооружиться текстовым редактором, открывать файлы по одному и сохранять в кодировка WINDOWS-1251. Примерно после 20 обработанных файлов я понял, что к концу работы или отупею, или начну дёргаться. Список файлов html был размером со страницу экрана.

Подумал, вспомнил байку о том, что Linux пишут программисты для программистов, а не для людей 🙂 Решил написать скрипт. Получилось примерно следующее:

#!/bin/sh
for i in *.htm*; do iconv -t WINDOWS-1251 -f UTF-8 «$i» >tmp; mv tmp «$i»; done

Покумекав еще немного, я пришел к выводу, что плохо, если страничка будет в кодировке WINDOWS-1251, а META-тэг прописан UTF-8. И написал еще один скрипт:

#!/bin/sh
for i in *.htm*; do sed -e ‘s/charset=UTF-8/charset=WINDOWS-1251/g’ «$i» >tmp; mv tmp «$i»; done

Теперь всё стало хорошо и правильно.

Осталось как-то изощриться и закинуть обновлённые файлы на хостинг newmail.ru…

ВНИМАНИЕ! ОПАСНОСТЬ!!!

Если среди конвертируемых файлов попадут файлы с иной кодировкой, чем указано, в результате получится каша вместо букв. ПЕРЕД ВЫПОЛНЕНИЕМ КОНВЕРТАЦИИ ДЕЛАЙТЕ РЕЗЕРВНУЮ КОПИЮ КОНВЕРТИРУЕМЫХ ФАЙЛОВ!

No comments yet.