Назад | Перейти на главную страницу

Каков самый быстрый способ преобразовать столбцы MySQL в UTF8 из столбцов latin1, данные которых на самом деле являются UTF8?

У меня есть таблица MySQL, в которой есть несколько столбцов с набором символов latin1. Из-за проблем с драйверами столбцы фактически содержат данные utf8. Я хочу оставить данные как есть, но изменить набор символов столбца на UTF8.

Каждое решение, которое я исследовал, выполняет две команды изменения таблицы, меняя столбец на двоичный, а затем возвращаясь к предыдущему типу с новым набором символов.

В нескольких таблицах в нескольких базах данных есть несколько столбцов, поэтому этот подход будет довольно медленным.

Есть ли лучший способ сделать это?

Самый быстрый способ - это просто выполнить mysqldump и импортировать с определенными установленными флагами. Проверьте этот блог: http://blog.hno3.org/2010/04/22/fixing-double-encoded-utf-8-data-in-mysql/

Некоторые другие альтернативные методы перечислены здесь: http://en.gentoo-wiki.com/wiki/Convert_latin1_to_UTF-8_in_MySQL