Аскольд
 
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
 | 
| 
 |