Данные испанских символов MySQL
У меня есть база данных, содержащая испанские символы. для заполнения базы данных я получаю значения со страницы клиента, которая имеет кодировку символов=UTF-8. когда я вставляю значения в базу данных MySQL, строки содержат измененные данные. например, если я вставлю "Мексика", запись в базе данных будет "Мексика". это влияет на то, что когда я делаю запрос в таблице с указанием "Мексика", я не получаю результатов. мой вопрос в том, как вставить испанский или другой латинский акцент в базу данных mysql? у меня есть перепробовал все параметры сортировки, htmlentities() и т. Д., Но ничего не работает!! при выполнении запроса mysql я проверил, какие данные отправляются, и они находятся в правильной форме "Мексика", но когда я вижу запись в таблице через phpmyadmin, она изменяется!!
2 answers
Измените кодировку базы данных mysql/таблицы/ столбца на UTF-8 (а также установите параметры сортировки на совместимое значение).
ALTER TABLE mytable CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE mytable
MODIFY country CHAR(50)
CHARACTER SET utf8 COLLATE utf8_general_ci;
Также укажите символ, установленный на стороне PHP при подключении.
mysql_set_charset('utf8',$conn);
Взгляните на эту статью для получения дополнительной информации и сценария для пакетного изменения каждой таблицы/столбца в базе данных.
Сначала проверьте две вещи:
- Вы вставляете данные в формате UTF-8? Если данные поступают с веб-страницы, убедитесь, что кодировка страницы установлена в UTF-8 (метатег кодировки установлен в заголовке страницы).
- Вы уверены, что данные не сохранены в Юникоде? Это обратная ситуация: если phpMyAdmin использует что-то другое, кроме UTF-8, вы увидите искаженные символы при отображении содержимого.