Решено: регистронезависимый поиск по базе (perl+mysql)

Модератор: Модераторы разделов

Аватара пользователя
nuclear17
Сообщения: 117
ОС: linux/mac/win

Решено: регистронезависимый поиск по базе

Сообщение nuclear17 »

пытаюсь сделать регистронезависимый поиск по мускулу.
кодировка столбца utf8_general_ci .
файла темы движка utf-8. Если писать текст в столбец через phpmyadmin, текст пишется в нормальном виде (и нормально ищется), если через движок, то пишутся каракули, которые ищутся только регистрозависимо. В чем может быть трабл?
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Решено: регистронезависимый поиск по базе

Сообщение NickLion »

Проверьте текущую локаль. Попробуйте установить ее явно

Код: Выделить всё

use POSIX;
POSIX::setlocale(&POSIX::LC_ALL,"ru_RU.UTF-8");

Вот еще подключите, при надобности:

Код: Выделить всё

use locale;
Спасибо сказали:
Аватара пользователя
isvroot
Сообщения: 31
ОС: Windows Vista

Re: Решено: регистронезависимый поиск по базе

Сообщение isvroot »

попробуйте добавить в код такие строки:


use utf8;
use encoding utf8;

У меня была проблема с поиском и она решилась добавлением этих двух строк.
Windows жжёт
Спасибо сказали:
Аватара пользователя
nuclear17
Сообщения: 117
ОС: linux/mac/win

Re: Решено: регистронезависимый поиск по базе

Сообщение nuclear17 »

ни то, ни другое не помогло.
use encoding utf8; вообще сшибает кодировку страницы
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Решено: регистронезависимый поиск по базе

Сообщение NickLion »

Тогда может хотя бы отрывок кода работы с базой? И что включаете, основные опции.

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: Решено: регистронезависимый поиск по базе

Сообщение nuclear17 »

спасибо! заработало
Спасибо сказали: