Hace algun tiempo escribi un articulo en el que narraba mis problemas con wordpress y awardspace y uno de los problemas era que despues de haber restaurado una copia de la base de datos del blog, salian interrogantes en el sitio donde antes iban caracteres acentuados. En ese articulo puse una solucion bastante tediosa pero efectiva, sin embargo, estos dias migre el blog a dreamhost me volvio a pasar lo mismo. Como no estaba dispuesto a volver a hacer todo el curro de antes, decidi romperme mas los cuernos que la otra vez, y ademas esta vez contaba con la posibilidad de toquetear todo lo que quisiera en la copia de wordpress k tenia en dreamhost, ya que si algo cascaba no me quedaba sin blog, cosa que no podia hacer antes al tener alojado el blog unicamente en awardspace.
Bueno, pues despues de trastear un par de horitas, ya encontre el fallo que provoca este problema y por tanto, tambien encontre la solucion ideal. El fallo esta en que al exportar una base de datos (desde phpMyAdmin o usando el plugin Database Backup de wordpress) obtenemos un archivo de texto plano que contiene toda nuestrabase de datos. El problema esta en que este fichero usa la codificacion «latin1» y no «utf8» como seria deseable, por lo tanto al subir la base de datos al servidor mediante phpMyAdmin y usando las opciones por defecto es cuando se corrompen los datos ya que phpMyAdmin espera un archivo de texto codificado en «utf8» y no en «latin1»
Ahora que ya sabemos donde y por que casca, vamos con la solucion, que no podia ser mas sencilla. Nos logueamos en phpMyAdmin para acceder a la base de datos y pulsamos sobre el boton para ejecutar consultas SQL
El la ventana que aparece tenemos dos opciones, abrir el archivo de la base de datos en el bloc de notas y pegar todo su contenido en este cuadro de texto y darle a «Continuar», o sino podemos pulsar sobre «Importar archivos»
Y nos saldra esta otra ventana donde tenemos que indicar el archivo de base de datos que queremos subir mediante el boton «Examinar» y ademas, LO MAS IMPORTANTE cambiar «utf8» por «latin1» en el cuadro «Juego de caracteres del archivo»
Pulsamos sobre «Continuar» y ya esta listo. Si entrais en este momento en el blog vereis que todos los post se ven correctamente. Sin embargo, esta solucion solo es aplicable en el mismo momento en el que se produce el fallo al subir la base de datos y no vale para bases de datos (como la de mi blog) que tengan una parte de los post bien escritos y la otra con fallos. En estos casos usar este metodo lo unico que haria seria poner mal los post que estan bien y bien los que estan mal. Si tienes una base de datos como la mia, mitad con fallos, mitad sin ellos tienes que seguir el tedioso metodo que explique en mi otro articulo. Esto me recuerda que tengo un buen numero de posts antiguos sin actualizar, y que tengo que actualizarlos un dia de estos. O no.
Una respuesta a “Solucion definitiva a los problemas con la codificacion en bases de datos MySQL”
[…] Original post by zapperdj […]