Този метод по-долу изглежда наистина обещаващ и още по-добър, красив в своята простота. Идеята е, че mysqldump цялата си база данни като latin1 и след това я импортирате повторно кодирана като utf-8.
Експортиране:
Импортиране:
Не вземам заслуга за това решение, то е изцяло от Блогът на Гарет Прайс . Сработи за всички, които са му оставили коментар досега:„Уау, човече, ти току-що ми спаси живота. Не прекарах 2 часа за това, а 2 дни“ привлече вниманието ми.
Актуализация №1: Изглежда, че Гарет не беше не е първият за да откриете това.
Актуализация №2: Току-що опитах това и работи прекрасно за моята UTF8-съхранена-като-latin1 база данни. Просто се уверете, че сте превключили набора от знаци по подразбиране във вашата база данни на utf8 преди импортиране, или в противен случай ще получите обикновени въпросителни знаци, където са били специалните знаци. Разбира се, това може да има много други последици, така че първо тествайте като ад.
И ако имате таблици, които не са зададени по подразбиране на схемата:
(същата идея, ако имате някакви настройки за специфични за колони знаци, ще трябва да направите ALTER TABLE [таблица] ПРОМЯНА НА КОЛОНА [настройки] без да посочва CHARACTER SET, така че да се върне към таблицата по подразбиране)