alexjk

Сортировка в справочниках городов для украинских букв

Recommended Posts

Заметил неудобную штуку. В украинском алфавите вместо русского "и" пишется "і". На скрине видно что сортировка неправильная. Города на ету букву всегда сверху списка. Даже в формах на сайте. Как поправить?

 

post-3155-0-73718900-1453362803_thumb.pn

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Заметил неудобную штуку. В украинском алфавите вместо русского "и" пишется "і". На скрине видно что сортировка неправильная. Города на ету букву всегда сверху списка. Даже в формах на сайте. Как поправить?

 

attachicon.gifsort.png

Сортировка обычно происходит по языковому принципу, сначала английский буквы, затем остальные... Наверное надо писать "i" не на английском а на украинском языке... ?

 

А может это происки америкосов, делают мову неудобной к использованию, чтобы украинцы переходили на английский или на русский язык? :) К стати, а как сортирует по буквам Ї или Є ? Их в английском алфавите нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дело не в американцах. Так как база идет в формате utf-8, то сортировка скорее всего происходит по байтовым кодам символов. Латиница в этих кода расположена по алфавиту. Основная кириллица тоже. Но многие латинские диакритические знаки, равно как и схожие кириллические идут вне основного алфавита. Поэтому и выскакивают вверх.

 

Что бы не было обидно пользователям русского языка, то, кажется, у них так же ведет себя буква Ё, но она используется несравненно реже украинских і Ї є в начале слова.

 

Я постараюсь найти как можно решить эту проблему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Попробуйте в phpMyAdmin для поля названия города поставить сравнение вида utf8_unicode_ci (предварительно сделав запасную копию этой таблицы)

 

post-58-0-09463000-1453463425_thumb.png

 

post-58-0-96291300-1453463489_thumb.png

 

И попробовать отсортировать города после этого изменения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

в админке я изменил SQL-запрос для получения списка записей из связанной таблицы на:

select * from re_city order by name COLLATE utf8_unicode_ci ASC

и города нормально сортируются как в объявлении на сайте так и в фронтенде..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

хм. странно. а вот у меня сработало. ваш вариант формально тоже приемлем, но на практике - это не гут, запрос лучше не перегружать вспомогательными штуками.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А поповоду писать вместо англ укр - абсурд!

Понятно, что абсурд, но не удивлюсь тому, что при составлении украинской раскладки могли взять за основу русскую и добавить пару символов из английской кодировки, они и работают как английские, ведь у каждого символа есть свой код, видимо по нему и сортируется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

но не удивлюсь тому, что при составлении украинской раскладки могли взять за основу русскую и добавить пару символов из английской кодировки

 

Вы слишком плохого мнения о разработчиках))) Сами многобайтовые кодировки типа UTF-8 возникли как раз из за того, что в однобайтовых (Windows-1251, ...) перестали помещаться все символы всех алфавитов. Это только "на глаз" украинская и английская i похожи, но поскольку для операций со строками эта похожесть не играет роли, то подмена одной буквы другой вполне могла бы ощутимо укоротить жизнь автору такой идеи)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А в реале эти символы, со времён УКНЦ, различаются расстоянием точки на 20мм по плёнке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас