на руско.
Или может подскажете другой способ заставить PHP правильно сортировать русские строки в виндовой кодировке?
локаль ru_RU.cp1251 установлена
тогда объясните что я делаю не так. Делаю
setlocale(LC_ALL,'ru_RU.cp1251');
и все равно в результатах сортировки буква "Ё" оказывается впереди всех. При этом если делаю
setlocale(LC_ALL,'ru_RU');
сортировка полностью меняется, из чего я заключаю, что сама функция установки локали работает и проблема в самой локали.
А какой функцией вы сортируете?
Похоже в ПХП при сортировке установки локали не учитываются совсем. Вот и все...
natcasesort
В том-то и дело, что сортировка от установки локали зависит, но ни при какой установке она не сортирует правильно. Подозреваю, что создатели локали
про букву "Ё" просто забыли.
Ну покажите мне где эта сортировка зависит от установки локали?
http://host2.ruweb.net/info/locales.php
Код: |
C natcasesort() все выглядит иначе, но толку от этого ничуть ни больше.
http://host2.ruweb.net/info/locales2.php
А все почему? А все потому что rtfm надо внимательней.
В пхп только одна функция для сравнения строк с учетом установок локали - strcoll()
Т.ч. usort($fruits, "strcoll") - дает адекватный результат.
http://host2.ruweb.net/info/locales3.php