|
|
|
| Совсем замучился. обнаружил что MySql считает что алфавит начинается с буквы Ё, а не с буквы А. Различать е и ё различает, но в сортировке не может справиться правильно.
сервер 5.0.85
Что можно придумать? | |
|
|
|
|
|
|
|
для: smust
(16.12.2009 в 20:18)
| | Нужно выбрать сравнение utf8_general_ci или utf8_unicode_ci, и различий между "е" и "ё" не будет. | |
|
|
|
|
|
|
|
для: Fractured#
(16.12.2009 в 20:25)
| | в том то и дело, что нужно различие и правильная сортировка. Делаю языковую базу где это очень критично... | |
|
|
|
|
|
|
|
для: smust
(16.12.2009 в 20:29)
| | SELECT 'ё'>'а' дает 0
SELECT 'ё'<'а' дает 1.... | |
|
|
|
|
|
|
|
для: smust
(16.12.2009 в 20:29)
| | Можно при сортировке использовать COLLATE:
ORDER BY `s` COLLATE utf8_general_ci
| , а само поле сделать, например, utf8_bin. Либо наоборот, поле сделать utf8_general_ci, а сравнивать через BINARY, например. | |
|
|
|
|
|
|
|
для: Fractured#
(16.12.2009 в 20:45)
| | вот если сравнивать по binary и окажется такая чача.
В ut8_bin весь русский сегмент кириллицы живет между ё и Ё | |
|
|
|
|
|
|
|
для: Trianon
(16.12.2009 в 23:19)
| | Сравнивать с помощью "=" или "<>", другие отношения, конечно, не подходят. | |
|
|
|
|
|
|
|
для: Fractured#
(16.12.2009 в 23:21)
| | Получается что слова в словаре правильно отсортировать невозможно. UTF-отстой. | |
|
|
|
|
|
|
|
для: smust
(17.12.2009 в 08:05)
| | Я тоже в начале пытался всё на UTF-8 делать, но именно из-за сортировки пришлось отказаться от этой идеи.
Страницы можно оставить в UTF-8, но таблицы делать в национальных кодировках.
Если указать явно кодировку соединения с базой, то MySQL сама позаботится о преобразовании запросов из
одной кодировки в другую и ничего дополнительно писать руками не потребуется. | |
|
|
|
|
|
|
|
для: Eugene77
(18.12.2009 в 21:28)
| | У меня получается в таблицах как минимум по три национальных кодировки...
Без utf сортировать вообще нереально... | |
|
|
|