У меня есть база данных MySQL со всеми настройками полей таблицы, так как
latin1_swedish_ci
У него почти 1000 записей уже сохранены, и теперь я хочу преобразовать все эти данные в
utf8_general_ci
Чтобы я мог отображать любой языковой контент. Я уже изменил полевые сопоставления в utf8_general_ci, но это не конвертирует все старые записи в utf8_general_ci
Используйте это, чтобы преобразовать существующую базу данных MySQL из одной кодировки кодировки в другую
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Преобразование существующей таблицы из одной кодировки кодировки в другую
ALTER TABLE db_table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
CONVERT()
преобразует данные между разными наборами символов. Проверьте это для справки
одна забавная вещь.
CONVERT TO CHARSET и CONVERT () / CAST (), предложенные Anshu, будут работать нормально, если кодировка в таблице находится в правильной кодировке.
Если по какой-то причине столбец latin1 содержит текст utf8, CONVERT () и CAST () не смогут помочь. Я «перепутал» мою базу данных с этой установкой, поэтому потратьте немного времени на решение этой проблемы.
чтобы исправить это в дополнение к преобразованию набора символов, необходимо выполнить несколько упражнений.
INSERT INTO UTF8_TABLE (UTF8_FIELD) SELECT convert(cast(convert(LATIN1_FIELD using latin1) as binary) using utf8) FROM LATIN1_TABLE;
в основном, оба случая будут обрабатывать строку исходным символам, а затем – правую кодировку, что не будет происходить с simple convert(field using encoding) from table;
команда.