понедельник, 3 декабря 2007 г.

Приведение файлов к единой кодировке

Обнаружил, что у меня в проекте куча файлов с разными кодировками (utf и windows-1251). Захотелось привести это наследие проклятого прошлого и мрачного настоящего к одной единственной и неповторимой utf8. Все оказалось очень даже просто, при наличии соответствующих инструментов. В качестве перекодировщика была взята утилита enca, которая замечательно определяет русские (да и не только) кодировки и может конвертировать файл в указанную кодировку. Небольшой примерчик скрипта на groovy, который собственно и перекодирует нужные файлы в каталоге:
src="mysrc" // каталог с рабочими файлами

ant = new AntBuilder()

scanner = ant.fileScanner {
   fileset(dir:src) {
       include(name:"**/*.java")
       include(name:"**/*.groovy")
       include(name:"**/*.gsp")
       include(name:"**/readme")
       include(name:"**/*.txt")
       include(name:"**/*.css")
   }
}

for (f in scanner) {                   
   ant.exec(executable:"enca") {
       arg(line: "-x utf8 "+f)
   }
}
Этот пример прекрасно запускается в ubuntu.

Комментариев нет: