Знаки вопроса при импорте базы данных mysql - проблема кодировок

03.08.2010

Проблема кодировок mysql при переносе сайта с хостинг на хостинг вечная проблема. Особенно эта проблема встречается у тех, кто переходит с настроенного хостера на свой только что установленный сервер и не настроенный. И так вы сдампили базу данных своего сайта, и импортируете на виртуальный сервер, или реальный сервер - в итоге получаете вместо кирилицы знаки вопроса ??????????????. Я нашел решение.

И так решение номер рас:

1 способ: ищем файлик php, где идет подключение к базе данных вида mysql_connect. Файл обычно называется init.php. Сразу после подключения к базе вставляем строчку

mysql_query('SET NAMES cp1251');

Иногда движок закодирован в Zend и этот способ становится трудоемким, тогда переходим к второму способу:

2 способ:

Ишем на сервере конфигурационный файл настройки mysql -  /etc/my.cnf (или /etc/mysql/my.cnf)

В раздел [mysqld] добавляем следующее:

default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
init-connect="SET NAMES utf8"
skip-character-set-client-handshake


Последние строки устанавливают кодировку utf8 принудительно для всех запросов.

В раздел [mysqldump] достаточно добавить

default-character-set=utf8

После этого MySQL будет работать с windows-1251 кодировкой

Если при импорте базы вместо русских букв светятся иероглифы или вопросы, видимо дамп sql был сделан в другой кодировке, не в utf8. Создайте дамп в utf8 или перекодируйте его в нужную кодировку с помощью iconv или recode.

Ну вот вроде решение проблемы!

На данный момент актуальная кодировка UTF-8, придерживайтесь данной кодировки в своих вебпроектах



Оставить комментарий...

Добавить комментарий


Защитный код
Обновить