Какой из сборников utf8 является лучшим?

Я хочу сортировку UTF8 для поддержки:

  • английский
  • персидский
  • арабский
  • Французский
  • японский язык
  • китайский язык

Есть ли UTF8_GENERAL_CI поддерживать все эти языки?

2 ответа

Решение

Да, это правильно. UTF-8 - это кодировка для набора символов Unicode, которая поддерживает практически все языки мира.

Я думаю, что единственная разница заключается в сортировке ваших результатов, разные буквы могут приходить в другом порядке на других языках (акценты, умлауты и т. Д.). Кроме того, сравнивая a в ä может вести себя по-другому в другом сопоставлении.

_ci Суффикс означает, что сортировка и сравнение происходит без учета регистра.

http://www.collation-charts.org/ может быть интересным для вас.

Как UTF8_GENERAL_CI было хорошее решение некоторое время назад. У него есть некоторые недостатки.

UTF8 в MySQL на самом деле использует 3 байта вместо 4, что вам нужно для таких символов, как эмодзи и новые азиатские символы.

Таким образом, MySQL имеет более новую кодировку с именем utf8mb4, которая фактически соответствует определению UTF8.

Для полной поддержки азиатских языков вам нужно выбрать utf8mb4.

Если вам нужна правильная сортировка на нескольких языках, используйте utf8mb4_unicode или же utf8mb4_unicode_ci вместо общего.

Более подробный ответ вы можете найти в разделе В чем разница между utf8_general_ci и utf8_unicode_ci

Другие вопросы по тегам