Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Upper/ucase (MySQL) 30/04/2002 - 19:30:28
      Re: Upper/ucase (Вик) 30/04/2002 - 20:52:49
      Re: Upper/ucase (vitek) 02/05/2002 - 15:29:22

> Original message text:
> From: MySQL - 30/04/2002 - 19:30:28
> Subject: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...
>
> КТО-ТО МОЖЕТ ОБЪЯСНИТЬ???
>
>
>


From: Вик - 30/04/2002 - 20:52:49
Subject:Upper/ucase
-----------------
Хех! Вот и у меня сюрприз для знатоков!!
http://www.mysql.ru/webboard/index.html?n1=869&n2=1&page=2

Но в том то всё и дело, что никому эти сюрпризы не нужны. Всем нужен нормальный рабочий мускуль, и эти сюрпризы говорят только об одном - у мускуля ещё вся жизнь впереди.

Интересно, а есть русские разработчики, которые учавствуют в создании мускуля? Можно им направлять найденные глюки? И куда, вообще, их направлять?? Или может они бывают в этом форуме?

А что касаемо регистра, то (предположительно) об этом стоит забыть. Лично я давно разочаровался во всех этих регистрах. Пример: в перле преобразование регистра не работает. Я даже говорю ему - use locale!! После этого перл начинает преобразовывать регистр - на моей домашней машине (на XP+perl) преобразование в верхний регистр преобразует буквы как и надо - вверх. А у провайдера (на Караване стою) преобразование работает наоборот - верхний регистр -> вниз, и нижний -> вверх! Просто хохма!! При этом в регулярных выражениях игнорирование регистра так и не работает.

Выкрутился я простым, надёжным и весьма топорным способом. Я написал свои функции преобразования регистра (на perl). Буквы просто перекодируются через хеш - маленькие в большие, большие в маленькие. Можно преобразовывать целыми словами или только первые буквы в словах. Теперь работает чётко, по-нашему! По медвежьи!! И ни одного неправильного преобразования!!!

:)

PS. Кстати, я тут слышал (люди говорили) - если использовать в мускуле koi8_r, то никаких проблем тебе..


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
2815



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |