sql >> Base de Datos >  >> RDS >> Mysql

Corrección de codificaciones

Su texto se ha codificado en UTF-8 y luego se ha vuelto a descodificar, por error, como Mac Roman .

No podrá arreglar esto dentro de la base de datos, ya que MySQL no conoce la codificación Mac Roman. Puede escribir un script para recorrer cada fila de cada tabla afectada y corregir el texto invirtiendo el ciclo de codificación/descodificación. Python es una posibilidad, ya que tiene una buena variedad de codificaciones:

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

Alternativamente, si no hay contenido que no sea ASCII que no se vea afectado por este problema, puede intentar usar mysqladmin para exportar un volcado de SQL, luego conviértalo todo a la vez, ya sea usando un script como el anterior o, si tiene un editor de texto (presumiblemente en Mac) que pueda hacerlo, cargue el script como UTF-8 y luego guárdelo como Mac Romano. Finalmente, vuelva a importar el volcado usando mysql < dump.sql .