Это очень старый пост, но все еще нет правильного ответа ...
Я задал этот вопрос, потому что мой подход к проблеме, которую я использовал ранее, несколько не работал.К счастью, я обнаружил, что моей проблемой был не мой подход, а инструмент - phpMyAdmin.Я сделал то же самое, используя консоль MySQL, и она отлично работает.
Решение
Если mysql считает, что данные находятся в одном наборе символов (то есть utf8)но фактические данные находятся в каком-то другом наборе символов (например, в латинице 1), тогда решение состоит в том, чтобы преобразовать столбец (столбцы) с текстом в тип неизвестного набора символов, например VARBINARY , BLOB / MEDIUMBLOB ... и затем преобразовать обратно в столбцы с информацией о наборе символов при настройке правильного набора символов.
В случае, если у вас есть MEDIUMTEXT тип столбца y в таблице x , содержащей данные в latin1 , в то время как mysql думает, что она находится в каком-то другом кодировке (в вашем случае utf8), используйте следующие инструкции по восстановлению:
mysql> ALTER TABLE `x` CHANGE `y` `y` MEDIUMBLOB;
mysql> ALTER TABLE `x` CHANGE `y` `y` MEDIUMTEXT CHARACTER SET latin1 COLLATE latin1_general_ci;
Вы, конечно, должны убедиться, что кодировка поддерживается вашим экземпляром MySQL.