Какой из сборников utf8 является лучшим? - PullRequest
23 голосов
/ 24 апреля 2010

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

  • английский
  • Персидская
  • Arabic
  • Французский
  • Японский
  • Китайский

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

Ответы [ 2 ]

33 голосов
/ 24 апреля 2010

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

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

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

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

1 голос
/ 21 июня 2018

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

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

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

Чтобы иметь возможность полностью поддерживать азиатские языки, вам нужно будет выбрать utf8mb4.

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

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

...