Опубликовано : admin в (MySQL, PHP)

Кракозябры в php и mysql

Теги: , , , ,

Методы лечения.

Начнем пожалуй с MySQL.

Многие разработчики сталкиваются с тем, что после переноса форум(блога?) и импорта/экспорта базы сайт начинает показывать кракозябры или вопросики.

Лечиться это так:
Сразу после коннекта к бд делаем несколько запросов:

mysql_query("SET character_set_client = cp1251");
mysql_query("SET character_set_server = cp1251");
mysql_query("SET character_set_results = cp1251");
mysql_query("SET collation_connection = cp1251_general_ci");

И все.

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

Теперь php.

С ним проблем обычно нет, пока вы не начнете его ajax’ить, вот тут начинаются проблемы, конечно если ваш хотер позаботился о том чтобы в php.ini стояла правильная кодировка, то проблем нет, к сожалению, хостерам обычно глубоко насрать на php.ini b все настройки в нем «По умолчанию».

Лечиться так:

header('Content-type: text/html; charset=windows-1251;');

Все эти советы если сайт и база у вас в кодировке cp1251.

Хотя все-же практичнее использовать UTF-8, как это делает wordpress :)

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