Разрешить символы не ascii в базе данных MySQL - PullRequest
4 голосов
/ 26 ноября 2011

Недавно в мою базу данных mysql была вставлена ​​запись с русскими буквами.База данных не может отображать их правильно.Могу ли я что-нибудь сделать, чтобы на моем веб-сайте было много языков?

Ответы [ 2 ]

2 голосов
/ 26 ноября 2011

Вы должны взглянуть на utf8 кодировку

Не могли бы вы опубликовать, какая кодировка используется вашей базой данных и вашей таблицей?(можете ли вы опубликовать структуру вашей базы данных?)

РЕДАКТИРОВАТЬ: Чтобы ответить на ваш вопрос в вашем комментарии, основное отличие состоит в том, что utf8_general_ci быстрее, но не заботится о некоторых сравнениях для конкретного языка.Вы можете прочитать больше об этом в ссылке, которую я представил выше в моем сообщении.Фактически это влияет на поведение сортировки и поиска.

Не имеет значения, как бы вы хотели, чтобы ваша база данных работала, все эти параметры сортировки полезны в разных средах.В вашем случае я бы не использовал utf8_bin, поскольку он сравнивает строки только по двоичным значениям.

0 голосов
/ 08 марта 2017

Это давно, но мне помогло использование utf8_decode ($ variable) при выполнении операторов вставки.

Например, если бы я повторил запрос, он бы отображал символы просто отлично, но когда запрос был выполнен, символы не-ASCII выглядели искаженными, что не имело смысла. После выполнения utf8_decode ($ variable) это сработало.

Выбор nvarchar в качестве типа столбца также может помочь

пример запроса:

$query = 'INSERT INTO table VALUES("'.utf8_decode($variable).'");';
...