пытаюсь сделать регистронезависимый поиск по мускулу.
кодировка столбца utf8_general_ci .
файла темы движка utf-8. Если писать текст в столбец через phpmyadmin, текст пишется в нормальном виде (и нормально ищется), если через движок, то пишутся каракули, которые ищутся только регистрозависимо. В чем может быть трабл?
Решено: регистронезависимый поиск по базе (perl+mysql)
Модератор: Модераторы разделов
-
nuclear17
- Сообщения: 117
- ОС: linux/mac/win
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: Решено: регистронезависимый поиск по базе
Проверьте текущую локаль. Попробуйте установить ее явно
Вот еще подключите, при надобности:
Код: Выделить всё
use POSIX;
POSIX::setlocale(&POSIX::LC_ALL,"ru_RU.UTF-8");Вот еще подключите, при надобности:
Код: Выделить всё
use locale;-
isvroot
- Сообщения: 31
- ОС: Windows Vista
Re: Решено: регистронезависимый поиск по базе
попробуйте добавить в код такие строки:
use utf8;
use encoding utf8;
У меня была проблема с поиском и она решилась добавлением этих двух строк.
use utf8;
use encoding utf8;
У меня была проблема с поиском и она решилась добавлением этих двух строк.
Windows жжёт
-
nuclear17
- Сообщения: 117
- ОС: linux/mac/win
Re: Решено: регистронезависимый поиск по базе
ни то, ни другое не помогло.
use encoding utf8; вообще сшибает кодировку страницы
use encoding utf8; вообще сшибает кодировку страницы
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: Решено: регистронезависимый поиск по базе
Тогда может хотя бы отрывок кода работы с базой? И что включаете, основные опции.
PS я вот посмотрел в своем коде - у меня вот такое там завалялось:
Может последние 3 строчки помогут?
PS я вот посмотрел в своем коде - у меня вот такое там завалялось:
Код: Выделить всё
$DB_HANDLE = DBI->connect(
"DBI:mysql:database=$dbname;host=$server",
$user, $pwd,
{ 'RaiseError' => 0, AutoCommit => 0 }
)
or return $DBI::errstr;
return $DBI::errstr if $DB_HANDLE->{'AutoCommit'};
$DB_HANDLE->do("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ");
$DB_HANDLE->do("set character_set_client='utf8'");
$DB_HANDLE->do("set character_set_connection='utf8'");
$DB_HANDLE->do("set character_set_results='utf8'");Может последние 3 строчки помогут?
-
nuclear17
- Сообщения: 117
- ОС: linux/mac/win
Re: Решено: регистронезависимый поиск по базе
спасибо! заработало