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

Correction des encodages

Votre texte a été encodé en UTF-8 puis re-décodé, par erreur, en tant que Mac Roman .

Vous ne pourrez pas résoudre ce problème dans la base de données, car MySQL ne connaît pas l'encodage Mac Roman. Vous pouvez écrire un script pour parcourir chaque ligne de chaque table affectée et corriger le texte en inversant le cycle d'encodage/décodage. Python est une possibilité, ayant une bonne gamme d'encodages :

>>> print u'é'.encode('macroman').decode('utf-8')
é
>>> print u'ö'.encode('macroman').decode('utf-8')
ö
>>> print u'í'.encode('macroman').decode('utf-8')
í

Alternativement, s'il n'y a pas de contenu non-ASCII qui n'est pas affecté par ce problème, vous pouvez essayer d'utiliser mysqladmin pour exporter un vidage SQL, puis convertissez-le en une seule fois, soit en utilisant un script comme ci-dessus, soit, si vous avez un éditeur de texte (vraisemblablement sur Mac) qui peut le faire, en chargeant le script au format UTF-8 puis en l'enregistrant sous Mac Romain. Enfin réimportez le dump en utilisant mysql < dump.sql .