Кодировка UTF8 давно стала стандартом и переход с Windows-1251 на UTF-8 - это вопрос времени. Кроме того, UTF-8 является кодировкой по умолчанию в Linux, так что это еще один довод в пользу бессмысленности 1251 yf xNIX системах.

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

Первое, с чем сталкиваются при переходе - необходимость конвертировать содержимое php файлов из windows-1251 (cp1251) в UTF-8.

Основной утилитой перекодировки в нашем случае будет iconv. При помощи iconv запросто можно перекодировать один файл:

iconv -f WINDOWS-1251 -t UTF-8 src_filename > dst_filename

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

#!/bin/bash

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

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

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

ALTER TABLE mytable CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;