Массовый перевод файлов из ansi в utf8

Регистрация
24 Июн 2008
Сообщения
151
Реакции
2
Update базы происходит раз в сутки, из файлов расположенных в одной папке... Столкнулся с проблемой - файлы ANSI кодировке, база в UTF-8. Файлы загружает другой скрипт. Решение вижу в конвертации их в UTF после распаковки в папку с помощью скрипта...
Может кто уже сталкивался с подобным? помогите кодом...
Заранее благодарен.
 
Уважаемый lufton каким образом вы собираетесь ставить на W32 приложение на хостинг под управлением Линукса? Никак... Мне нужен PHP скрипт который будет конвертировать файлы...
 
Такую штуку с файлами сделать теоретически просто.
Читаете диру (в массив). Через foreach каждый файл читаете в строку (file_get_contents допустим), конвертируете функцией перекодировки строк в utf и через fopen скидываете в старое имя файла. Практически всё упирается в функцию перекодировки строки. Вообще проще всего через iconv, но он наконвертирует ... Ещё по Интернету гуляет уйма функций перекодировки - ну разных там ansi 2 utf8, ansi 2 unicode и тд. Скажем так, ничего путного у меня по крайней мере не вышло - очень часто вместо некой части кириллицы какие то хромоногие символы получались.
 
PHP:
foreach(glob('files/*.txt') as $f) { $text=file_get_contents($f);
if(mb_detect_encoding($text,'UTF-8,Windows-1251')=='Windows-1251')
file_put_contents($f,iconv('Windows-1251','UTF-8//IGNORE',$text)); }
с проверкой кодировки
 
pitkina спасибо большое, но уже решил немного по другому, конвертом на стадии погрузки в базу)))
PHP:
        $ee = file("nord123/$file");
        foreach ($ee as $row) {
            $row=trim($row);
    $row = iconv("CP1251","utf-8",$row);
//    $row = utf8_encode($row); - второй способ но как то он не правильно работает
 
Назад
Сверху