Опубликовано : admin в (MySQL, PHP)
Кракозябры в php и mysql
Теги: MySQL, PHP, вопросики, кодировка, кракозябры
Методы лечения.
Начнем пожалуй с 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
