Цитата:
Сообщение от dima2007
все решилось установкой вот такой строки
@mysql_query("SET NAMES utf8"); // для корректного поиска на американском хостинге
после этого поиск по русским полям базы начал работать нормально....
|
Судя по тому, что Вы написали, все дело в разных версиях MySQL. Дело в том, что в MySQL 4.1 появилась расширенная поддержка кодировок. И чтобы она правильно работала, ее нужна корректно настроить. Это означает, что скрипты, написанные без учета особенностей MySQL 4.1 работают
некорректно с русским текстом.
А таких скриптов очень много.
Чтобы они заработали правильно нужно после соединения с БД вставить директиву:
set set character set cp1251. Вместо cp1251 можно поставить и другую кодировку. Директива set names работает хуже, она устанавливает кодировку не совсем правильно.
На нашем хостинге мы поправили php (он не совсем корретно работает с MySQL), и добавили опцию, позволяющую задать кодировку базы данных в php.ini. При наличии этой опции кодировку в скрипте задавать уже не надо, php делает это сам, сразу после соединения с БД. Соответственно у нас корректно работают и старые скрипты, которые не рассчитаны на MySQL 4.1.
На нашем форуме все описано подробней:
http://forum.openhosting.ru/index.php?t=msg&goto=54