Upper/ucase

Роберт

Аналитик
Upper/ucase

У кого-нибудь здесь получалось нормально переводить русские тексты в верхний или нижний регистр?
Прописал в my.ini:
[mysqld]
character-sets-dir=...
default-character-set=cp1251
[client]
character-sets-dir=...
default-character-set=cp1251
После этого MySQL во всех местах бойко отвечает что кодировка cp1251 , но прорегистры ей очевидно никто ничего не рассказывал. Вот посмотрите что выдаёт:
есть сторока
"Привет, ЭТО НЕ ВАШЕ ДУ"
при lcase() получаем:
"Привет, ЭТО НЕ вАшЕ Ду"
а при ucase() видим:
"ПРивеТ, ЭТО НЕ ВАШЕ ДУ"

Я не знаю , может кто-то скажет что это нормально , мол MySQL умеет только сортировать по разным кодировкам , я поверю. Я например залез в shares\charset , и создал там свой rrr.conf , прописал его в index , потом сказал базе default-character-set=rrr и он стал без проблем работать с ним. И хотя в этом rrr я указал что при конвертации любой символ превращать в пробел - он вёл себя точно ракже как и при cp1251 и при latin1.

А ТЕПЕРЬ СЮРПРИЗ ДЛЯ ЗНАТОКОВ!

Кто знает что за разница между mysqld , mysqld-nt , mysqld-max и т.д. ???
Я лично особо не понял , они все у меня на Win2000 идут "ПОЧТИ" одинаково.
Хотите узнать различия?!
Берём туже строку "ЭТО НЕ ВАШЕ ДУ" и смотрим
При запуске lcase под mysqld и mysqld-max получаем:
"ЭТО НЕ вАшЕ Ду"
А при запуске под mysqld-nt , mysqld-max-nt и mysqld-opt видим:
"эТо Не ВАШе дУ"
Заметили , уменьшились практически противоположные буквы!!!
И тоже самое при ucase , при строке "Привет" даёт
"ПРивеТ"
и
"ПриВет"
соответственно. Я даже и не знаю что сказать.
Вначале я подумал что это из-за способов связи ведь mysqld и mysqld-max соединяются через TCP/IP , а mysqld-nt и mysqld-max-nt через pipes , но mysqld-opt тоже работает через TCP/IP , a ведёт себя как pipes...

КТО-ТО МОЖЕТ ОБЪЯСНИТЬ???
 
Сверху