Показать сообщение отдельно
  #5  
Старый 25.08.2006, 12:22
openhosting openhosting вне форума
Студент
 
Регистрация: 25.08.2006
Сообщений: 3
Восклицание

Цитата:
Сообщение от 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
__________________
http://openhosting.ru - Качественный хостинг
Ответить с цитированием