Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Sort() и кириллица
Новая тема
Ответить
цитата
01/08/08 в 12:05
Sterx
ajax'ом в бекэнд идет массив из строк на кириллице
стоит setlocale нужная перед обработкой
если добавляешь латиницу
то sort сортирует ее и ставит впереди кирилических строк
а кириллицу напрочь отказывается. ucfirst работает для кириллицы
цитата
01/08/08 в 12:49
Corex
Цитата:
добавляешь латиницу то sort сортирует ее и ставит впереди кирилических строк
Это так и должно быть. А что кириллицу не сортирует, ХЗ. Пример массива можно, который из ajax приходит (через print_r или var_dump)? И какая кодировка, какой запрос GET/POST?
цитата
01/08/08 в 14:12
Sterx
запрос POST
[0]=>[позиция два]
[1]=>[позиция один]
а кодировка UTF скорее всего
пробовал перекодировать - получается абракодабра
вопрос не принципиальный, просто хотелось бы знать где косяк
цитата
01/08/08 в 17:23
nordic
Были проблемы с кириллицей. Использовал xAjax. Долго промучался с настройками базы, страницы, JS и PHP частей библиотеки xAjax.... Все бестолку, даже когда везде все стояло одинаково.
Решением стало использование версии xAjax 0.2.4
Почему-то именно эта версия работала с кириллицей даже без настроек и при несовпадении кодировок...
цитата
04/08/08 в 07:55
Corex
Sterx:
POST запрос JQuery скорее всего идёт в UTF (по аналогии с другими либами, с JQuery пока не работал плотно), а юникод плохо обрабатывается функциями типа sort:
Цитата:
Functions like sort, when sorting alphanumerically, will lack the knowledge to know how to sort multi byte UTF-8 characters in a manner which is semantically correct. sort will still sort ASCII 7 characters correctly (semantically correct) but will only be able to sort multibyte UTF-8 characters based on their byte-by-byte values.
Думаю, отсортировать можно либо конвертнув через iconv в нужную кодировку, либо через сравнение мультибайтовых строк в коллбэк функции для usort.
цитата
04/08/08 в 09:51
dDan
Ну данные идут точно в UTF
Код:
function strutf($a,$b){
return strcmp(iconv('UTF8','cp1251',$a),iconv('UTF8','cp1251',$b));
}
usort($_POST,'strutf');
Попробуй так
Новая тема
Ответить
Эта страница в полной версии