Mysql
 sql >> Base de données >  >> RDS >> Mysql

Conversion d'une table MySQL avec des données mal codées en UTF-8

Cette méthode ci-dessous semble vraiment prometteuse et mieux encore, belle dans sa simplicité. L'idée est de mysqldumper toute votre base de données en latin1, puis de l'importer ré-encodée en utf-8.

Exporter :

Importer :

Je ne prends aucun crédit pour cette solution, elle provient entièrement de Blog de Gareth Price . Cela a fonctionné pour tous ceux qui lui ont laissé un commentaire jusqu'à présent :"Wow mec tu viens de me sauver la vie. Je n'ai pas passé 2 heures dessus, mais 2 jours" a attiré mon attention.

Mise à jour 1 : On dirait que Gareth était ce n'est pas le premier pour le découvrir.

Mise à jour 2 : Je viens d'essayer ceci et cela a fonctionné à merveille pour ma base de données UTF8-stored-as-latin1. Assurez-vous simplement de changer le jeu de caractères par défaut de votre base de données en utf8 avant l'importation, sinon vous vous retrouverez avec des points d'interrogation simples là où se trouvaient les caractères spéciaux. Bien sûr, cela pourrait avoir de nombreuses autres ramifications, alors testez d'abord comme un diable.

Et si vous avez des tables qui ne sont pas définies sur le schéma par défaut :

(même idée si vous avez des paramètres de jeu de caractères spécifiques à une colonne, vous devrez faire un ALTER TABLE [table] CHANGER LA COLONNE [paramètres] sans spécifier CHARACTER SET pour revenir à la table par défaut)