В чем разница между latin1_general_ci и utf8_bin в MYSQL - PullRequest
1 голос
/ 22 августа 2009

Я сейчас работаю с многоязычным сайтом. В некоторых случаях мне нужно сохранить другой языковые данные в базе данных. Пока я это делал, не сохраняются фактические данные, которые я ввел. Вместо него содержится "?????????????????????". После этого я изменил параметры сортировки latin1_general_ci на utf8_bin.

Тогда это работает хорошо сейчас.

Может ли кто-нибудь объяснить мне различия между сопоставлением, доступным в MySQL

Заранее спасибо.

Феро

1 Ответ

6 голосов
/ 22 августа 2009

utf8_bin: сравнивать строки по двоичному значению каждого символа в строке

utf8_general_ci: сравнивать строки, используя общие правила языка и используя сравнения без учета регистра

utf8_general_cs: сравнивать строки, используя общие правила языка и используя сравнения с учетом регистра

Например, следующее будет иметь значение true с любым из параметров сортировки UTF8_general, но не с параметром utf8_bin Код:

Ä = A
Ö = O
Ü = U

При сопоставлении utf8_general_ci они также вернут true, даже если не тот же случай.

Ничто из этого не является "лучше"; они просто имеют разные функции. Вам нужно выбрать, какой из них лучше всего соответствует вашим потребностям.

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