Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Массовое перекодирование
 
 автор: Shorr Kan   (15.02.2011 в 09:34)   письмо автору
 
 

Получил проект, в котором винегрет кодировок... ручками:

iconv -f CP1251 -t UTF-8 file.php -o file.php


работает прекрасно, но это медитация.
Возможности все, ибо рут. Мне подойдет любое решение, от консольного варианта, до php-скрипт... до win-программы. Все равно.

Задача - перевести все файлы в дире и сабдирах (рекурсивно) из неизвестного в utf-8
Задача разовая, больше не понадобится. Поэтому приемлю даже самое ужасное решение, которое будет работать сутки... но чтобы перекодировало само, без моего вмешательства и без поломок.

Кто в состоянии помочь?
По идее, если знать как выяснить текущую кодировку файла (в какой он сохранен) - задача решена. Но пока что я не знаю, как выяснить.

  Ответить  
 
 автор: Косорылый   (15.02.2011 в 09:59)   письмо автору
 
   для: Shorr Kan   (15.02.2011 в 09:34)
 

От земляка:)))Кодировка файлов
http://omsk777.ru/kodir3.html

  Ответить  
 
 автор: Shorr Kan   (15.02.2011 в 10:48)   письмо автору
 
   для: Косорылый   (15.02.2011 в 09:59)
 

Спасибо, юзаю - наверное что-нибудь сломается

  Ответить  
 
 автор: cheops   (15.02.2011 в 10:18)   письмо автору
 
   для: Shorr Kan   (15.02.2011 в 09:34)
 

Рекурсивный обход можно посмотреть в скрипте по ссылке http://softtime.ru/scripts/replace.php, только действие нужно заменить на свое.

  Ответить  
 
 автор: Shorr Kan   (15.02.2011 в 10:48)   письмо автору
 
   для: cheops   (15.02.2011 в 10:18)
 

Я знаю реализацию рекурсивного обхода :)))

  Ответить  
 
 автор: Саня   (15.02.2011 в 10:48)   письмо автору
 
   для: Shorr Kan   (15.02.2011 в 09:34)
 

Попробуйте выполнить команду
for f in `find /target/directory -type f`; do enca $f -L russian -x UTF-8; done

Перед применением команды сделайте бэкап перекодируемых файлов и установите enca. Enca туго определяет кодировку с русскими символами, если не указать язык в параметре -L.
"/target/directory" — место, где хранятся файлы, которые нужно перекодировать.

  Ответить  
 
 автор: Shorr Kan   (15.02.2011 в 11:01)   письмо автору
 
   для: Саня   (15.02.2011 в 10:48)
 

Саня, в десятку :)
Спасибо большое

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования