|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 12 Mar 2002 16:46:11 To : " Andrej" Subject : Re: Hа: Hа: Сортировка русских букв -------------------------------------------------------------------------------- Здравствуй, Andrej. A> > Тривиально. Задать базе данных запрос с order by и вывести в том порядке, в A> > котором она отдала. Предварительно не забыть прочесть документацию на оную A> > базу, дабы она была сконфигурирована на сортировку в соответствии с A> > правилами того языка и кодировки. А заодно - чтобы отдавала в той A> > кодировке, в которой ты собираешься это получить. A> В общем перл или W2K виноваты... база вроде как непричем. A> Вот простой код с сортировкой; A> "Я" специально вперед поставил, чтобы видно было, сортирует или нет A> @y = qw(я Я a A b B c C d D А а б Б В в г Г д Д е Е ё Ё ж Ж з З и И Й й к К Л A> л М м н H о О п П Р р С с Т т У у ф Ф Х х Ц ц ч Ч Ш ш щ Щ ъ Ъ Ы ы ь Ь э Э Ю A> ю); И в какой кодировке это в оригинале? A> print @y; # печатаем как есть A> print '<BR>'; A> { A> use locale; A> use POSIX qw (locale_h); A> setlocale(LC_CTYPE, 'Russian_Russia.1251'); # 'ru_RU.KOI8-R' , как я A> понимаю, без разницы для виндов? Hеправильно понимаешь. То есть если для win98 пофигу, то это значит, то она не умеет правильно работать с локалью либо (второе вероятнее) что ты неправильно пишешь имя локали в обоих случаях. A> @x = sort @y; # Locale-defined sorting order A> print '<BR>Locale-defined sorting order<BR>'; A> print @x; A> } A> @x = sort @y; # ASCII sorting order again A> print '<BR>ASCII sorting order<BR>'; A> print @x; A> смотрим Locale-defined sorting order A> Под WIN98(perl ActiveState 522) и под linux при сортирует без всяких проблем A> Под WIN2000 русский, perl ActiveState 522 имеем: A> ящыюДHЪХЦЙёАФУИЩГЖЗМВСТЛБПРКЕШЧОЯЬЭЮЫэшъaAbBcCdDьсрутЁхфабвгчцдежзийклмноп A> Это если в настройках в "Языки и стандарты, Язык(местоположение)" стоит A> русский Если ставим английский, то A> имеем: яЁщсцыпчрутфхюДHЪХЦЙёАФУИЩГЖЗМВСТЛБПРКЕШЧОЯЬЭЮЫшжъэмaAbBcCdDьбавлойгед A> зник A> Где грабли??? Чего лечить надо? А без апача? -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/11308d52a6548.html, оценка из 5, голосов 10
|