Ru-Board.club
← Вернуться в раздел «Программы»

» Групповое изменение кодировки html-файлов

Автор: ElementalIST
Дата сообщения: 01.11.2006 22:18
Такой вопрос

Собственно есть 350 html файлов, у которых надо поменять котировку с Unicode-1200 на Unicode-UTF8. Делать это вручную очень не хочется. Имеющийся в наличии софт, такое сделать не смог. Может кто знает, какой прожкой воспользоваться, или как-то это сделать.
Автор: konik
Дата сообщения: 02.11.2006 22:06
Search&Replace имеет такую фичу.
Автор: ElementalIST
Дата сообщения: 07.11.2006 17:03
Search&Replace не помогут поскольку в файлах нет строки encoding="..." которую можно поменять и все. Нужно просто брать и пересохранять файл в другой кодировке. Проблема была решена примитивным лобовым методом - сохранением заново каждого файла вручную- поскольку надо было сделать это быстро, и времени долго искать более продвинутое решение не было
Всем спасибо, тема закрыта
Автор: 6epcepk
Дата сообщения: 13.05.2007 15:53
Поднимаю тему.
Все что встречал - по одному файлу. Интересует рекурсивная возможность перекодировки файлов.
Автор: 6epcepk
Дата сообщения: 17.05.2007 22:40
Я очень удивлен - но ничего не смог найти из софта.
Пришлось написать [more=PHP-скрипт для пакетной перекодировки файлов]
Код: function mysql_iconv($string, $from, $to) {
// keep current character set values:
$character_set_database = mysql_result(mysql_query("SELECT @@character_set_client"),0,0);
$character_set_results = mysql_result(mysql_query("SELECT @@character_set_results"),0,0);

mysql_query("SET character_set_client=$from");
mysql_query("SET character_set_results=$to");

$string_escaped = mysql_real_escape_string($string);
$converted_string = mysql_result(mysql_query("SELECT '$string_escaped'"),0,0);

// restore previous character set values:
mysql_query("SET character_set_client=$character_set_database");
mysql_query("SET character_set_results=$character_set_results");

return $converted_string;
}



function convert($directory){

if(is_dir($directory)){
$direc = opendir($directory);
while(false !== ($file = readdir($direc))){

if($file !="." && $file != ".."){

if(is_file($directory."/".$file)){

                    $filename = explode(".",$file);
                    
                    if ($filename[1] === "html" || $filename[1] === "php") {
                        
                        $text = file_get_contents($directory."/".$file);
                        $text = iconv("windows-1251", "utf-8", $text);
                        //$text = mysql_iconv($text, "cp1251", "utf8");
                        file_put_contents($directory."/".$file, $text);                
                    
                        echo $file . " ....... ok<br>";
                    
                    }


} else if(is_dir($directory."/".$file)){
                
convert($directory."/".$file);

}

}
}
closedir($direc);
}

return ;
}

convert(ROOT . "/templates/photo/main");
Автор: CherrLy
Дата сообщения: 02.10.2007 21:03
Сам долго искал такую прогу, потом вспомнил что раньше была такая утилита... Вообщем ловите:

HTML Changer
http://sura.ru/emanovs/HTMLChanger.zip
Автор: VovaII
Дата сообщения: 06.01.2009 13:42
CherrLy
Спасибо! Когда то давно она меня здорово выручила. Потом потерял, и не мог вспомнить название.
Спасибо!
Автор: rBBWYwg
Дата сообщения: 04.08.2009 15:43
А как можно привести великое множество файлов в различных кодировках к единой кодировке?

Вот, например, папка TEST.
В ней, скажем, 500 файлов htm.
Из них 100 в кодировке UTF-8, 200 в кодировке КОИ8-Р и еще 200 в Win-1251.
Какие из них в какой кодировке не известно - они перемешаны.

Как их все перевести в кодировку Win-1251? Не вручную же!

Может быть, есть способ? Через пакетное перекодирование, или может можно как-то пакетно заменять таблицу символов?
Очень рассчитываю на помощь.
Автор: anisciq
Дата сообщения: 24.08.2009 10:26
rBBWYwg

я бы использовал Universal Encoding Detector [http://chardet.feedparser.org/] -- это либа на питоне. там умный алгоритм распознает кодировку примерно так же как браузер это делает. нарисовать с ней простой скрипт для перебора файлов и приведения их к одной кодировке -- должно быть тривиально.
Автор: Kshatrij
Дата сообщения: 17.02.2010 21:46

Цитата:
Вообщем ловите:


Спасибо! Сам такого нигде не нашел. Выручили.
Автор: G_Zuzu
Дата сообщения: 26.08.2010 15:04

Цитата:
HTML Changer
http://sura.ru/emanovs/HTMLChanger.zip

к сожалению в ней нет функции кодировки UTF-8 без "BOM", может кто нибудь знает есть ли аналоги?
Автор: jayboun
Дата сообщения: 25.11.2011 11:24
rBBWYwg, если есть под рукой доступ linux или freebsd, то можно заюзать вот такой bash-скрипт:


Код:
PHP код:
#!/bin/bash

FILES=`find -iname '*.txt'`
for i in $FILES
do
echo "Converting $i to UTF-8 encoding..."
mv $i $i.icv
iconv -f WINDOWS-1251 -t UTF-8 $i.icv > $i
rm -f $i.icv
done

Страницы: 1

Предыдущая тема: Посоветуйте прогу для снятия скриншотов


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.