Изменение кодировки базы данных с использованием существующих данных

#mysql #encoding #character-encoding

#mysql #кодирование #кодировка символов

Вопрос:

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

В настоящее время у меня отображаются имена, Rubén которые не исправляются даже при изменении кодировки этого столбца на utf8_general_ci .

Должен ли я повторно импортировать свои данные в базу данных или я могу применить изменения кодировки к существующим данным «на месте»?

Комментарии:

1. Как БД должна знать, что эти символы на самом деле искажены в глазах человека? Все, что он знает, это то, что ему было сказано хранить именно эти символы. Итак, да, вам в основном нужно будет преобразовать их самостоятельно.

2. Это может помочь: mysqlperformanceblog.com/2007/12/18 /…

3. ОК. Я думал, что данные, хранящиеся внутри, могут быть в порядке, но неправильно декодированы.

4. @Andre Пожалуйста, укажите это в качестве ответа, и я приму его. Мои проблемы исправлены. Спасибо!

Ответ №1:

Это может помочь:

 UPDATE table SET column=CONVERT(CONVERT(column USING binary) USING utf8) WHERE id=123;
 

Источник:
http://www.mysqlperformanceblog.com/2007/12/18/fixing-column-encoding-mess-in-mysql /