mysql, Кириллица, UTF-8, и регистр

1. ramzes (20.01.2014 / 23:44)
В общем такая проблема, не работает регистронезависимое сравнение.
кодировка везде одинаковая utf8_general_ci
не работает не только это, так же попытка сравнения с использованием WHERE lower('field)... не пашет.
собственно приминение LOVER() превращает строку в набор квадратиков, что видимо является последствием конфликта кодировок.
Проблемма в том, что кодировка везде одна и та же, уже все перепроверил, ни чего не понимаю...

Добавлено через 01:02 сек.
P.S. очень надо, основная функция сайта поиск по дб

2. Дмитрий (21.01.2014 / 06:00)
А кодировку при подключении к БД указываешь?
SET CHARACTER SET utf8
SET NAMES utf8


3. ramzes (21.01.2014 / 13:11)
Указывал. Не помогает.

4. Алексей (21.01.2014 / 13:27)
1. ramzes, в файле .htaccess укажи кодировку

AddDefaultCharset UTF-8

5. ramzes (21.01.2014 / 13:52)
да естественно она там указана.
нет, тут где то в мускуле загвоздка. что то я упустил, а что не пойму.
раньше работало как надо

6. Вантуз-мен (21.01.2014 / 14:28)
Может поможет http://php.ru/forum/viewtopic.php?t=21320

7. Samxal (21.01.2014 / 14:34)
Если сервер тогда /mysql/my.cnf проверь.
Строки default-character-set,character-set-server,collation-server,init-connect и т.д.

8. ramzes (21.01.2014 / 15:01)
Samxal (21 Января 2014 / 14:34)
Если сервер тогда /mysql/my.cnf проверь.
Строки default-character-set,character-set-server,collation-server,init-connect и т.д.
не, у меня не сервер, я весь пхпмайадмин излазиил, там все настроенно на утф8.
могу конечно попросить админа посмотреть, но есть ли резон? эти настройки ведь и отвечают за то что я вижу в пхпмайадмин, правильно?
еще вопрос, за одно,
кто знает utf general mysql500 ci, чем отличается от стандартной utf general ci?
че то гугл подвел по этому вопросу

9. marti91 (21.01.2014 / 15:23)
На счет utf general mysql500 ci смотрите тут http://stackoverflow.com/questions/16589472/mysql-whats-utf8-general-mysql500-ci

10. юЮЮфюв (21.01.2014 / 15:32)
Данные точно "становятся квадратиками" в MySQL запросе? Быть может, проблема создается на предыдущих этапах?

11. ramzes (21.01.2014 / 15:36)
10. TakteS, квадлатиками их делает использование lower(), я проверял, точно квадратики

12. юЮЮфюв (21.01.2014 / 15:48)
Может еще при создании таблицы косяк.
http://stackoverflow.com/questions/4145118/mysql-upper-and-lower-not-working-with-utf-8-characters

13. Кевин Митник (21.01.2014 / 17:39)
1. ramzes, какой драйвер? если PDO, то указание кодировки методом из поста 2 не работает. Параметры только в dsn
mysql:host=localhost;dbname=dbname;charset=utf8;


14. ramzes (21.01.2014 / 20:07)
13. Кевин Митник_HHTeam, мускули. не люблю я пдо
12. TakteS, нет ни каких косяков.
все это я еще вчера нагуглил, тут что то другое

15. Дмитрий (21.01.2014 / 21:26)
1. ramzes, это знакомая проблема. Обычно такие косяки происходят из-за неявной кодировке при подключении к БД. MySQL обычно при неявной кодировке пытается угадать ее. И угадывает ее обычно неправильно. При подключении к БД, либо после него, но перед поисковым запросом (хотя, второй вариант - это бред, конечно), укажи все возможные значения кодировки.
SET CHARACTER SET utf8
SET NAMES utf8
SET CHARSET utf8
SET CHARACTER_SET_CLIENT = utf8
SET CHARACTER_SET_CONNECTION = utf8
SET CHARACTER_SET_RESULTS = utf8
SET COLLATION_CONNECTION = utf8_general_ci
Хотя мне для борьбы с этой шляпой достаточно были первые два значения. Но это на PDO.

16. ramzes (21.01.2014 / 21:57)
15. dima.london, о, спасибо, попробую. я как раз только первые два и устанавливал.
вот последняя строка может быть самое то

17. Дмитрий (23.01.2014 / 06:09)
Ну че там? Каг дела?

URL: https://visavi.net/topics/39923