|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrej 2:5020/400 12 Mar 2002 10:39:23 To : Artem Chuprina Subject : Hа: Hа: Сортировка русских букв -------------------------------------------------------------------------------- > Тривиально. Задать базе данных запрос с order by и вывести в том порядке, в > котором она отдала. Предварительно не забыть прочесть документацию на оную > базу, дабы она была сконфигурирована на сортировку в соответствии с правилами > того языка и кодировки. А заодно - чтобы отдавала в той кодировке, в которой > ты собираешься это получить. > В общем перл или W2K виноваты... база вроде как непричем. Вот простой код с сортировкой; "Я" специально вперед поставил, чтобы видно было, сортирует или нет @y = qw(я Я a A b B c C d D А а б Б В в г Г д Д е Е ё Ё ж Ж з З и И Й й к К Л л М м н H о О п П Р р С с Т т У у ф Ф Х х Ц ц ч Ч Ш ш щ Щ ъ Ъ Ы ы ь Ь э Э Ю ю); print @y; # печатаем как есть print '<BR>'; { use locale; use POSIX qw (locale_h); setlocale(LC_CTYPE, 'Russian_Russia.1251'); # 'ru_RU.KOI8-R' , как я понимаю, без разницы для виндов? @x = sort @y; # Locale-defined sorting order print '<BR>Locale-defined sorting order<BR>'; print @x; } @x = sort @y; # ASCII sorting order again print '<BR>ASCII sorting order<BR>'; print @x; смотрим Locale-defined sorting order Под WIN98(perl ActiveState 522) и под linux при сортирует без всяких проблем Под WIN2000 русский, perl ActiveState 522 имеем: ящыюДHЪХЦЙёАФУИЩГЖЗМВСТЛБПРКЕШЧОЯЬЭЮЫэшъaAbBcCdDьсрутЁхфабвгчцдежзийклмноп Это если в настройках в "Языки и стандарты, Язык(местоположение)" стоит русский Если ставим английский, то имеем: яЁщсцыпчрутфхюДHЪХЦЙёАФУИЩГЖЗМВСТЛБПРКЕШЧОЯЬЭЮЫшжъэмaAbBcCdDьбавлойгедзник Где грабли??? Чего лечить надо? -- Hу, Пока! Андрей "Artem Chuprina" <ran@ice.ru> сообщил/сообщила в новостях следующее: news:slrna8p649.n74.ran@party.lan.ice.ru... > Здравствуй, Andrej. > > >> A> Столкнулся с такой проблемой. > >> A> Имеется база данных. Как всегда, .PM файл со всеми модулями и один .pl > >> A> файл, который > A> и > >> A> запускается в броузере, ну в этом файле все настройки и определение > >> A> полей базы > A> данных... > A> > > >> A> Если я запускаю базу данных на WIN2000, perl ActiveState 522, apache... > >> A> И с > >> A> use locale > >> A> То поля с русскими записями сортируются следующим образом > A> > > >> A> яЯЩщЫыюЮёэЭшШъЪabcdЬьСсРруУтТЁХхфФаАБбВвГгчЧцЦДдеЕЖжзЗиИйЙКклЛМмHнОоПп > A> > > >> A> Ээээ.... бред какой то > A> > > >> A> Если убираю use locale, то все сортируется нормально(почему ё впереди > >> A> а?) > A> > > >> A> abcdЁёАабБВвГгдДеЕжЖЗзИиЙйкКлЛМмнHоОпПРрСсТтУуфФХхЦцчЧШшщЩъЪЫыьЬэЭЮюяЯ > A> > > >> A> но разумеется, при поиске различаются большие и малые буквы > >> A> Под linux все работает нормально... подскажите чего искать, как научить > >> A> базу данных > >> A> нормально сортировать? > A> > > A> > Если у тебя база данных сортирует, то perl тут при чем? > > A> Так под linux то нормально... И на локальном компе и на удаленном > A> буржуйском серваке. Проблема только под W2K, кстати нужно под win98 > A> проверить что будет.... А вообще как проверить более конкретно, кто > A> виноват? > --- ifmail v.2.15dev5 * Origin: http://www.beautiful-ladies.com/ (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/8578021f0058.html, оценка из 5, голосов 10
|