Неправильно сортируются элементы в списках содержащих символы кирилицы (украинские символы "є" и "і")

Главные вкладки

Аватар пользователя Ed Ed 22 августа 2011 в 23:20

Я делаю сайт на украинском языке. При создании списка нод, который сортируетася по алфавиту, почему-то символы "є" и "і" идут перед "а". При создании списков используется модуль views и таксономия.

Вот что получается (Європа явно не на своем месте):

Європа
Австралія
Азія
Нова Зеландія

Подскажите пожалуйста какие настройки модулей или ядра друпала можно сделать, что-бы решить эту проблему.

Комментарии

Аватар пользователя axel axel 23 августа 2011 в 13:43

Скорее всего проблема в установке collation в БД. Удостоверься, что COLLATION установлен в utf8_unicode_ci, а не в utf8_general_ci или что-то иное.

Аватар пользователя Ed Ed 30 августа 2011 в 11:21

Большое спасибо, получилось, наконец-то разобрался.
Нашел два решения данной проблемы.
1. Надо было зайдя в phpMyAdmin выбрать базу данных необходимого сайта, выбрать вкладку SQL (она вторая после структуры) и вставить эти строки
ALTER TABLE `node` CHANGE `title` `title` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;

в поле Run SQL query/queries on database, и кликнуть Go. И заголовки нод стали нормально сортироваться.

2. Того же результата можно добиться и другим путем если выбрать таблицу node, потом вкладку Структура. В строке title кликнуть на карандаш (change). В строке Collation выбрать utf_unicode_ci. А дальше Go.
А чтоб еще и термины таксономии сортировались правильно можно зайти в таблицу taxonomy_term_data и так же само поменять свойство поля name.