как должны храниться данные utf8_general_ci? - PullRequest
1 голос
/ 08 ноября 2010

Я использую utf8_general_ci, как должны храниться данные?

я имею в виду, что если у меня есть varchar / текст, который содержит специальные символы, такие как áéíóúàèìòùçÇÀÉ 100 , они хранятся так или они конвертируются каким-то образом? Я выполняю поиск CASE / ACCENT INSENSITIVE , но люди сказали мне, что я не правильно храню данные, поэтому мне нужна ссылка

так запутался по этому поводу, даже мой ORDER BY не работает, потому что данные повреждены (после того, как я знаю, как хранить данные, я собираюсь преобразовать мою базу данных, таблицы / наборы имен уже utf8_general_ci / utf8)

Ответы [ 2 ]

1 голос
/ 08 ноября 2010

Я использую utf8_general_ci, как должны храниться данные?

Просто храните их правильно.:)

Серьезно: Вы должны сохранить его так, чтобы при просмотре базы данных в кодировке UTF-8 через подключение в кодировке UTF-8 в программе, такой как phpMyAdmin или HeidiSQL, вы видели действительные символы áéíóúàèìòùçÇÀÉÌÒ.Ничего больше.

utf8_general_ci уже нечувствителен к акценту в том смысле, что

 á = a
 é = e

, если вы используете предложение LIKE columnname LIKE "searchterm" вместо columnname = "searchterm", оно также не учитывает регистр.

0 голосов
/ 08 ноября 2010

Вы уверены, что данные повреждены?Когда вы берете его из таблицы, все акценты отсутствуют?UTF-8 - это набор символов, utf8_general_ci - это сопоставление.Они разные.Если вы хотите, чтобы ваш ORDER BY правильно сортировал, вы можете вместо этого использовать utf8_unicode_ci.Сортировка в основном связана с поиском и сортировкой, а не с сохранением.

Можете ли вы опубликовать свой результат SHOW CREATE TABLE?

...