выбор таблицы сортировки для универсальных символов - PullRequest
0 голосов
/ 09 мая 2018

Я работаю над бэкэндом, который должен хранить универсальные символы.

Я выбрал utf8mb4 Table Encoding для этой цели. Я также должен выбрать Таблицу сортировки.

Самый простой вариант - выбрать utf8mb4_general_ci Сортировка таблиц. Помимо общего, есть также около 20 других сопоставлений на выбор. Какова цель более конкретных? utf8mb4_general_ci или, может быть, utf8mb4_unicode520_ci охватывает все из них? Какой из них мне следует использовать, если я хочу хранить символы от китайского до арабского.

1 Ответ

0 голосов
/ 10 мая 2018
  • ...general_ci просто. Он не приравнивает двухсимвольные комбинации (например, с пробелом без пробела) к эквиваленту одного символа.

  • ...unicode_520_ci взято из Unicode версии 5.20, последней версии, доступной, когда MySQL обнаружил ее. Он обрабатывает такие вещи, как заказ Emoji, которого не было в предыдущих версиях.

  • В MySQL 8.0 предпочтительным сопоставлением является utf8mb4_0900_ai_ci на основе Unicode 9.0.

  • ...<language>_ci обрабатывает варианты, найденные в данном языке. Например, ch и ll на испанском языке должны рассматриваться как "буквы" и сортироваться между cz и d и lz и m.

  • Для общего использования не используйте ...general_ci, используйте последнюю версию, полученную из Unicode. Для языковых ситуаций выберите одно из других сопоставлений.

  • Я знаю, знаю, как (или даже нет) китайский и арабский языки сортируются по-разному в разных сопоставлениях. Тем не менее, я вижу ...persion_ci, поэтому я подозреваю, что есть проблема.

  • Используйте utf8mb4, а не utf8, тем более что вам нужен китайский.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...