Рекурсивная конвертация файлов с помощью iconv
How to recursive convert files with iconv to UTF-8
Задался сегодня задачей конвертации проекта в UTF-8. Изрядно порывшись в интернете нашёл тучу неработающих или криво работающих вариантов. В результате был рождён следующий гениальный скрипт под названием /usr/bin/fconv.sh
mv $1 $1.old
iconv -f CP1251 -t UTF-8 $1.old -o $1
sed -i 's/windows-1251/UTF-8/g' $1
rm $1.old
А для того чтобы это чудо скриптовой мысли сконвертировало все мои JSP файлы была вызвана следующая чудо-строчка:
find . -name "*.jsp" -exec fconv {} \;
В результате мы получаем в текущей директории (и всех директориях ниже) файлы сконвертированные из CP1251 в UTF-8. Для проекта в Eclipse необходимо последовательно выполнить в текущей директории:
find . -name "*.java" -exec /home/tomcat/bin/fconv.sh {} \;
find . -name "*.jsp" -exec /home/tomcat/bin/fconv.sh {} \;
find . -name "*.html" -exec /home/tomcat/bin/fconv.sh {} \;
find . -name "*.lbi" -exec /home/tomcat/bin/fconv.sh {} \;
find . -name "*.dwt" -exec /home/tomcat/bin/fconv.sh {} \;
mv $1 $1.old
iconv -f CP1251 -t UTF-8 $1.old -o $1
sed -i 's/windows-1251/UTF-8/g' $1
rm $1.old
А для того чтобы это чудо скриптовой мысли сконвертировало все мои JSP файлы была вызвана следующая чудо-строчка:
find . -name "*.jsp" -exec fconv {} \;
В результате мы получаем в текущей директории (и всех директориях ниже) файлы сконвертированные из CP1251 в UTF-8. Для проекта в Eclipse необходимо последовательно выполнить в текущей директории:
find . -name "*.java" -exec /home/tomcat/bin/fconv.sh {} \;
find . -name "*.jsp" -exec /home/tomcat/bin/fconv.sh {} \;
find . -name "*.html" -exec /home/tomcat/bin/fconv.sh {} \;
find . -name "*.lbi" -exec /home/tomcat/bin/fconv.sh {} \;
find . -name "*.dwt" -exec /home/tomcat/bin/fconv.sh {} \;