Аскольд
Member
Сообщения: 83
Зарегистрирован: 27.2.2003
Пользователя нет на форуме
|
когда размещено 21.3.2004 в 15:26 |
|
|
А нельзя ли установить локаль ru_RU.CP1251?
на руско.
Или может подскажете другой способ заставить PHP правильно сортировать русские строки в виндовой кодировке?
|
|
support
|
когда размещено 22.3.2004 в 14:27 |
|
|
локаль ru_RU.cp1251 установлена
|
|
Аскольд
Member
Сообщения: 83
Зарегистрирован: 27.2.2003
Пользователя нет на форуме
|
когда размещено 22.3.2004 в 14:58 |
|
|
тогда объясните что я делаю не так. Делаю
setlocale(LC_ALL,'ru_RU.cp1251');
и все равно в результатах сортировки буква "Ё" оказывается впереди всех. При этом если делаю
setlocale(LC_ALL,'ru_RU');
сортировка полностью меняется, из чего я заключаю, что сама функция установки локали работает и проблема в самой локали.
|
|
support
|
когда размещено 22.3.2004 в 21:59 |
|
|
А какой функцией вы сортируете?
Похоже в ПХП при сортировке установки локали не учитываются совсем. Вот и все...
|
|
Аскольд
Member
Сообщения: 83
Зарегистрирован: 27.2.2003
Пользователя нет на форуме
|
когда размещено 23.3.2004 в 11:36 |
|
|
natcasesort
В том-то и дело, что сортировка от установки локали зависит, но ни при какой установке она не сортирует правильно. Подозреваю, что создатели локали
про букву "Ё" просто забыли.
|
|
support
|
когда размещено 23.3.2004 в 13:44 |
|
|
Ну покажите мне где эта сортировка зависит от установки локали?
http://host2.ruweb.net/info/locales.php
Код: |
setlocale (LC_ALL, 'ru_RU.cp1251');
echo strftime ("ru_RU.cp1251: %A %e %B %Y\n");
sort ($fruits,SORT_STRING);
echo join('',$fruits)."\n\n"; |
|
|
support
|
когда размещено 23.3.2004 в 13:55 |
|
|
C natcasesort() все выглядит иначе, но толку от этого ничуть ни больше.
http://host2.ruweb.net/info/locales2.php
|
|
support
|
когда размещено 23.3.2004 в 14:09 |
|
|
А все почему? А все потому что rtfm надо внимательней.
В пхп только одна функция для сравнения строк с учетом установок локали - strcoll()
Т.ч. usort($fruits, "strcoll") - дает адекватный результат.
http://host2.ruweb.net/info/locales3.php
|
|