powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL - проблемы с кодировкой.
5 сообщений из 5, страница 1 из 1
MySQL - проблемы с кодировкой.
    #32060564
n/a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
n/a
Гость
(Я почти уверен, что это FAQ :))

Вот такая проблема: MySQL версии 3.52 при попытке выполнить поиск без учета регистра символов (case insensitive search) в кодировке, отличной от той, которая устанавливается с SET CHARACTER SET DEFAULT; выдаются неправильные результаты. Пример:

> SELECT * FROM DocRu WHERE doc LIKE "%блабла%";

если известно, что поле doc типа LONGTEXT, а "блабла" набрано в кодировке Windows-1251, то выводятся также те записи, в которых doc не содержит подстроку "блабла". Если заменить запрос на учитывающий регистр (case sensitive), то результат будет верен:

> SELECT * FROM DocRu WHERE doc LIKE BINARY "%блабла%";

Опять таки, это как я понял не баг MySQL, просто при case insensitive поиске он нормализует строку по правилам действующей кодировки, а она не Windows-1251, а при употреблении BINARY никакой нормализации не происходит - просто сравниваются байты - поэтому он и работает.

Уверен, что эту проблему уже решали в рунете.

Заранее спасибо за любые советы!

PS.: В мануале пишут, что дополнительные кодировки можно прописать "by editing the `sql/convert.cc' file in the MySQL source distribution". А без перекомпиляции никак нельзя? :( И на худой конец, где взять необходимую таблицы для sql/convert.cc?
...
Рейтинг: 0 / 0
MySQL - проблемы с кодировкой.
    #32060574
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле в документации еще чего много сказано полезного! :)
есть такой файл my.cnf лежать может в C:\ или гдето типа /usr/local/ трали-вали
и есть такой параметр вызова MySQL --default-character-set=[latin1 | koi8 | win1251 | и много другое]
Поэтому ты можешь либо с параметром запускать сам exe либо прописать в my.cnf (есть в дистрибе) но его надо будет положить в c:\my.cnf
...
Рейтинг: 0 / 0
MySQL - проблемы с кодировкой.
    #32060594
n/a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
n/a
Гость
mahoune, спасибо!!! mysqld-nt --default-character-set=win1251 сделала свое дело. Но через my.cnf не работает :( Я скопировал c:\mysql\my-small.cnf в c:\my.cnf, прописал там в разделе
[mysqld]
set-variable = character_set=win1251

Но сервер не загружается!

$ net start mysql
The MySql service is starting.
The MySql service could not be started.

A system error has occurred.

System error 1067 has occurred.

The process terminated unexpectedly.


Попробовал закомментить остальные строчки в c:\my.cnf - все равно та же ошибка! А когда комментю
set-variable = character_set=win1251
сервак нормально грузится, но мне от этого не легче :)
...
Рейтинг: 0 / 0
MySQL - проблемы с кодировкой.
    #32060598
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая проблема!

Надо указать, помоему, переменную character-set-dir или как-то так она называется!
...
Рейтинг: 0 / 0
MySQL - проблемы с кодировкой.
    #32060640
n/a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
n/a
Гость
Есть такая, но все та же ошибка :((

character_sets_dir=c:/mysql/share/charsets

Я это пробовал ставить и в [myslqd] и в [client], с set-variable и без.

Т.к. реальный сервер на линуксе, придется там скрипты менять и в них явно прописывать default-character-set при старте, т.е. в обход my.ini
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL - проблемы с кодировкой.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]