Как сохранить данные utf8_general_ci?

65
8

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


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


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

спросил(а) 2021-01-19T16:27:31+03:00 9 месяцев, 1 неделя назад
1
Решение
66

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



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


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

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


 á = a
é = e

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

ответил(а) 2021-01-19T16:27:31+03:00 9 месяцев, 1 неделя назад
46

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

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

ответил(а) 2021-01-19T16:27:31+03:00 9 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема