Ответ очень прост, вариантов тут может быть два:
- При добавлении домена в панель ISPManager вы не указали кодировку (обычно windows-1251) в поле "Кодировка", таким образом Ваш браузер не правльно определяет кодировку страницы.
или
- В дампе базы данных не указана кодировка и сравнение или указана неверная (например latin1), но не пугайтесь :) переделывать дамп не нужно, достаточно в конфиг базы данных MySQL внести следующие строки в раздел [mysqld] или [mysql-server]:
default-character-set=cp1251
character-set-server=cp1251
collation-server=cp1251_general_ci
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake
После чего перезапустить MySQL (service mysql restart, /etc/init.d/mysql restart), удалить все таблицы с неверной кодировкой и залить дамп обратно в MySQL.
Если в mysql принудительно указать кодировку cp1251, а потом выполнить смену кодировки базы на UTF-8, то вместо букв "ш" и "И" будут стоять вопросики.
Типичное проявление - бекап баз в кодировке UTF-8 с последующим их восстановлением или просто апдейт CMS, для которых родная кодировка - юникод. Например - Wordpress, Drupal
Изучив Google, было найдено масса подобных проблем но все решение сводилось к удалению базы и заливки их резервной копии, что конечно не может быть решением.
Изучав особенности кодировки, я обратил внимание на то, что в mysql дампе буквы ш и И имели неверный код:
ш - 0xD13F
И - 0xD03F
В то время как верные коды для этих букв:
ш - 0xD188
И - 0xD098
Для интереса я проверил как отрабатывает на коды символов Perl в юникодной консоле:
perl -e 'printf "%#x\n", ord("И");'
0xd0
perl -e 'printf "%#x\n", ord("ш");'
0xd1
Таким образом данный сбой происходит из-за каких то нарушений в таблицах кодировок.
Исправить проблему очень просто, достаточно сделать дамп и выполнить две замены через Perl:
LC_ALL=C perl -pi -e "s|\xD1\x3F|\xD1\x88|g" dump.sql
LC_ALL=C perl -pi -e "s|\xD0\x3F|\xD0\x98|g" dump.sql
После чего залить исправленный дамп обратно в базу
Источник - http://hostinghelp.biz/content/решение-проблем-с-нарушением-отображения-букв-ш-и-и-в-резултате-неудачной-перекодировки-mysq