Данные испанских символов MySQL


У меня есть база данных, содержащая испанские символы. для заполнения базы данных я получаю значения со страницы клиента, которая имеет кодировку символов=UTF-8. когда я вставляю значения в базу данных MySQL, строки содержат измененные данные. например, если я вставлю "Мексика", запись в базе данных будет "Мексика". это влияет на то, что когда я делаю запрос в таблице с указанием "Мексика", я не получаю результатов. мой вопрос в том, как вставить испанский или другой латинский акцент в базу данных mysql? у меня есть перепробовал все параметры сортировки, htmlentities() и т. Д., Но ничего не работает!! при выполнении запроса mysql я проверил, какие данные отправляются, и они находятся в правильной форме "Мексика", но когда я вижу запись в таблице через phpmyadmin, она изменяется!!

Author: Gumbo, 2011-08-22

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); 

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

 6
Author: Anthony Accioly, 2011-08-22 16:52:52

Сначала проверьте две вещи:

  • Вы вставляете данные в формате UTF-8? Если данные поступают с веб-страницы, убедитесь, что кодировка страницы установлена в UTF-8 (метатег кодировки установлен в заголовке страницы).
  • Вы уверены, что данные не сохранены в Юникоде? Это обратная ситуация: если phpMyAdmin использует что-то другое, кроме UTF-8, вы увидите искаженные символы при отображении содержимого.
 0
Author: JJJ, 2011-08-22 16:40:59