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