0

Конвертация содержимого файлов из windows-1251 в utf8

Опубликовано : 10-06-2009 пользователем : alex-saratov | категория : Linux

Метки: , , ,

Многие столкнулись при переходе с ОС Windows на Linux с несоответствием кодировок. Базовая кодировка Linux — UTF8, Windows — Windows1251 (CP1251 для баз данных).

В общем столкнувшись с этим начал читать чем же и как конвертировать содержимое всех своих php файлов из windows-1251 (cp1251) в UTF-8.

Многие столкнулись при переходе с ОС Windows на Linux с несоответствием кодировок. Базовая кодировка Linux — UTF8, Windows — Windows1251 (CP1251 для баз данных).

В общем столкнувшись с этим начал читать чем же и как конвертировать содержимое всех своих php файлов из windows-1251 (cp1251) в UTF-8.

Начал с ICONV ман. дал знать что достаточно выполнить создается новый файл с указанным именем в нужной кодировке, но каждый файл скажем большого сайта руками так не переведешь.

iconv -f WINDOWS-1251 -t UTF-8 FILE_NAME > NEW_FILE_NAME

 

Потыкался и нашел кусок скрипта и доработал его.

#!/bin/bash

FILES=\»./*.php\»
for i in $FILES
do
echo \»Converting file $i to UTF-8 encoding…\»
mv $i $i.icv
iconv -f WINDOWS-1251 -t UTF-8 $i.icv > $i
rm -f $i.icv
done

 

Для выполнения скрипта не забудьте назначить права и можно положить в системную папку, чтобы можно было выполнить в любой папке.

Конвертирует быстро.

 

PS. После конвертирования файлов проекта, если проект пользуется базой MySQL нужно сконвертить и содержимое таблиц.

я сделал со всеми таблицами так.

ALTER TABLE mytable CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Понятно что это можно сделать с опять-таки  скриптом, но не было времени. Попробую разобраться и напишу.

Публикация комментария

Вы должны быть авторизованы.