Некорректная кодировка данных в таблице
Случается, что данные в mysql таблице хранятся в кодировке отличной от кодировки таблицы. Такое могло произойти, например, при заливке данных без указания кодировки источника. Исправить подобную ситуацию можно следующим образом:
CREATE TABLE `tmp` (SELECT * FROM `broken_table`); -- возвращаем столбцы в их "родную" кодировку ALTER TABLE `tmp` MODIFY `wrong_data` CHAR(30), CHARACTER SET latin1; -- конвертируем данные в бинарные ALTER TABLE `tmp` MODIFY `wrong_data` BLOB; -- возвращаем правильную кодировку ALTER TABLE `tmp` MODIFY `wrong_data` CHAR(30), CHARACTER SET utf8;
Далее исправленные данные переносим из временной таблицы в таблицу-исходник.
Янчарук А.В.
12.06.2013 10:53