[Comm] Неправильная сортировка в консоли?

Denis G. Samsonenko =?iso-8859-1?q?d=2Eg=2Esamsonenko_=CE=C1_gmail=2Ecom?=
Пт Окт 13 16:36:25 MSD 2006


Вечер добрый!

13.10.06, Sergey Stepanov написал:
> Если LC_COLLATE не выставлено как C, то алгоритм сортировки
> при обработке строк пропускает небуквенные символы.
> Поэтому сортировка "неправильная". Зато по русскому алфавиту.
>
> Если LC_COLLATE=C то строки сортируются в чистом виде,
> не сбрасывая со счетов небуквенные символы. Сортировка
> в этом случае "правильная". Но зато не по русскому алфавиту.
>
> Вопрос. Как же сделать так, чтобы и сортировка шла по алфавиту,
> и "небуквенные" символы учитывались при сортировке?

Интересный вопрос. А каков критерий правильности? На сколько я
понимаю, при локали C, сортирующий механизм ничего не знает о буквах,
и сотрирует согласно кодам символов в ASCII. Когда же вы
устанавливаете локаль в отличное от C значение, то сортировка идёт в
том порядке, в котором это указано в данной локали. И тут уже
сортируются с буквы, а не коды символов. Вероятно, как сортировать
небуквенные символы просто не задано. Да и не понятно, как их
сортировать, каков должен быть порядок, должны они идти до букв или
после, а может часть до, а часть после?  Каков критерий этой вашей
"правильности"?

-- 
Всего доброго,

Денис.


Подробная информация о списке рассылки community