Вы должны использовать сопоставление Unicode.Вы можете установить его по умолчанию в вашей системе или в каждом поле ваших таблиц.Существуют следующие имена параметров сортировки Unicode, и в этом их отличие:
utf8_general_ci - очень простое сравнение.Он просто - удаляет все акценты, а затем преобразует их в верхний регистр и использует для сравнения код такого вида «базовой буквы».
utf8_unicode_ci использует таблицу элементов сопоставления Unicode по умолчанию.
Основные отличия:
- utf8_unicode_ci поддерживает так называемые расширения и лигатуры, например: немецкая буква ß (U + 00DF LETTER SHARP S) сортируется рядом с буквой "ss" Œ (U + 0152 LATIN CAPITALLIGATURE OE) сортируется рядом с "OE".
utf8_general_ci не поддерживает расширения / лигатуры, он сортирует все эти буквы как отдельные символы, а иногда и в неправильном порядке.
utf8_unicode_ci
обычно более точен для всех сценариев.Например, на кириллическом блоке: utf8_unicode_ci подходит для всех этих языков: русский, болгарский, белорусский, македонский, сербский и украинский.Пока utf8_general_ci подойдет только для русского и болгарского подмножества кириллицы.Дополнительные буквы, используемые на белорусском, македонском, сербском и украинском языках, сортируются неправильно.
+ / - Недостаток utf8_unicode_ci в том, что он немного медленнее, чем utf8_general_ci.
Поэтому в зависимости от того, знаете ли вы или нет, какие конкретные языки / символы вы собираетесь использовать, я рекомендую использовать utf8_unicode_ci, который имеет более широкий охват.
Извлечено из форумов MySQL .