Importar una base UTF-8

Resulta que la mayoría de los hostings no tienen ni idea de lo que hacen con sus bases de datos, yo digo que el problema lo generaron los cambios de codificación de caracteres más que los ISP, pero si hay responsabilidad, probablemente está en no leer los changelog.txt

En mi caso la migración ni se sintió salvo por el tema de las fechas, servidores con una fecha pasando a otro con otra fecha, generó un poco de conflicto, pero fue todo "sin grandes problemas"
Ahora bien, el tema de la codificación es un martirio, unas fechas se arreglan, pero que te rompan todas las tildes y eñes es un dolor de huevo (si, literal), y noto que cada vez que alguien quiere migrar algo, revienta.

Posibles causas: MySQL Server, MySQL Client, Phpmyadmin

Cuando uno exporta una base de datos, habitualmente comprimida para que no pese mucho y la quiere subir a otro server, la codificación es lo que complicará las cosas.

Lo que descrubrí es muchos servers que tienen estas tres aplicaciones configuradas distinto, ejemplo. El server por default utf-8, el cliente latin1 (ISO), listo, cóctel para el desastre.

En el caso de anoche, ayudando a un amigo con su blog, teniendo la base creada en UTF 8 volvía una y otra vez a reventar los caracteres. Resulta que el cliente de mysql estaba en Latin1, así que por SSH más o menos logré cargar la base así:

gunzip < archivo.sql.gz | mysql -u usuario -p --default-character-set=utf8 base_destino
(el Gunzip es porque lo estaba sacando desde un archivo comprimido)

La cuestión está en --default-character-set=utf8 , esto le obliga a usar una codificación que queramos y no la que tiene por default.

Esto no te lo explican casi en ningún lado, jeje, pero está bueno saberlo, te puede salvar el día y ahorrarte horas y horas de dolor de cabeza.

El PHP My Admin tiene el problema que exporta como dice el cliente de MySQL y confunde como dice el server de MySQL, así que es muy factible exportar el archivo .sql con errores o, lo que es peor, ya sin una codificación correcta, una conversión de conversión que directamente arruina TODOS los caracteres y no hay forma de resolverlo. Así que primero revisen bien el archivo generado (sea ISO o UTF-8), que lo puedan abrir en alguno de esos modos y recién después lo importan.

Otro detalle: no hay ningún encabezado que nos diga si un tipo de caracteres es uno o el otro, se van a dar cuenta por los erroes agregados :P

Y para completar: en estos días migran mi base de datos también :D pero ya está todo en UTF-8, espero que no hagan cagadas, jajaja

PS: post auspiciado por el famoso gato

Si te gustó esta nota podés...
Invitame un café en cafecito.app

Categoría: Programación Etiquetas:  

Otros posts que podrían llegar a gustarte...

Comentarios

  • Alejandro     01/02/2008 - 11:56:51

    Me paso algo parecido el otro dia, veo que por suerte no soy al unico que les pasan estas cosas

  • Guty     01/02/2008 - 13:42:03

    Hay una remera sobre el gato, en un lado dice "its dead" y en la espalda "its alive" o algo así.
    La codificación es una poronga, me volví loco con el WP y un shoutbox, tanto quilombo y después lo saqué por el spam jeje

  • GFer     01/02/2008 - 13:45:32

    Después de tanto renegar, yo terminé corrigiendo todo a mano. Si tengo que migrar otra vez de hosting, arranco otra vez de cero.

  • bla!     01/02/2008 - 14:14:24

    En mi caso nunca tuve problema guardo todo usando el htmlentities y stripslashes y va como piña, espero que no haya sido casualidad
    Saludos

  • GFer     01/02/2008 - 14:33:24

    Ah, me olvidaba...

    Gato de mierda ese, no sabés si le tenés que cambiar las piedritas o no(?)

  • Gaston     01/02/2008 - 15:13:18

    Yo lo huebiera hecho a lo cabeza (manualmente) porque mi base de datos no pesa nada, pero es para tener en cuenta el tp Guiño

  • clasificado     01/02/2008 - 15:27:46

    ¿Osea que el archivo UTF-8 que genera la exportación de MYSQL no tiene el BOM?

    que truuuuuuuuuuuuuucho

  • Joaquin Orbe     01/02/2008 - 16:24:22

    Che, o me faltan 15 minutos de cocción ó el viernes me pego mal....pero, que tiene que ver
    el pobre gatito del limado de Schrodinger?

  • Fabio     01/02/2008 - 18:31:52


    clasificado dijo:

    ¿Osea que el archivo UTF-8 que genera la exportación de MYSQL no tiene el BOM?

    que truuuuuuuuuuuuuucho


    la mayoría salen "como se les canta" sin BOM


    Gaston dijo:
    Yo lo huebiera hecho a lo cabeza (manualmente) porque mi base de datos no pesa nada, pero es para tener en cuenta el tp Guiño


    esta que subí era de 30Mb (el archivo.sql), la de este blog llega a los 60Mb :P si... a mano.... YA LO HICE! y estuve varias horas para subir todo el blog.... naaaaaaa, otra vez no...

  • Carlos Desseno     01/02/2008 - 21:08:11

    Para pasar YTB a UTF8 también me costó un montón, tanto que hay cosas que siguen saliendo con los simbolitos raros.

    Lo del BOM o sin BOM es otro quilombo. Por ejemplo si uno escribe algo en UTF8 para que PHP lo devuelva sin el header() error lo tiene que guardar sin el BOM.

  • mariano     02/02/2008 - 10:33:05

    gracias fabio, el del post soy yo que estuve una noche entera puteando porque no entendia donde estaba el charset diferente de mierda.... en fin; un detalle hacerlo a mano es casi imposible porque terminas con ganas de asesinar al creador de los charsets, de las bases de datos y con ganas de irte a hacer mermelada artesanal en villa la angostura Guiño

  • Leo     02/02/2008 - 11:53:47

    Si se va a comenzar una base de datos desde cero? Que codificación conviene utilizar?

  • mariano     02/02/2008 - 22:54:17

    Leo, yo te diria que UTF8

  • Nesto     03/02/2008 - 03:08:40


    Fabio, no puedo dormir, no tengo fiesta, me cortaron el cable;


    1) Cual es el sentido de la vida ?
    2) El mundo se acabara en le 2012?
    3) Si seguimos asi se terminara todo?
    4) Existe Dios?
    5) Existen logias secretas que conspiran (Masones-Sionistas-Iluminatis) y que manejan la economia mundial y establecer un orden Global?
    6) Que va hacer de mi vida a los 70 años ? Tendre una jubilacion digna ?

    El Nesto

  • Fabio     03/02/2008 - 15:58:47


    Nesto dijo:

    Fabio, no puedo dormir, no tengo fiesta, me cortaron el cable;


    1) Cual es el sentido de la vida ?

    No tiene

    2) El mundo se acabara en le 2012?

    No, era el 29 de Agosto de 1997

    3) Si seguimos asi se terminara todo?

    No, comenzará el infinito (!)

    4) Existe Dios?

    Si, soy yo, alábame esta

    5) Existen logias secretas que conspiran (Masones-Sionistas-Iluminatis) y que manejan la economia mundial y establecer un orden Global?

    Si, una es la de los lectores de fabio.com.ar

    6) Que va hacer de mi vida a los 70 años ? Tendre una jubilacion digna

    Apenas puedo asegurarte una muerte digna y venís a pedir jubilación?

    El Nesto


    El Fabio

  • Zurdito     03/02/2008 - 16:34:13 Revisado: 03/02/2008 - 17:34:29

    Fabio dijo:


    5) Existen logias secretas que conspiran (Masones-Sionistas-Iluminatis) y que manejan la economia mundial y establecer un orden Global?
    Si, una es la de los lectores de fabio.com.ar


    Yo soy el tesorero

    El Zurdo

Deje su comentario:

Tranquilo, su email nunca será revelado.
La gente de bien tiene URL, no se olvide del http/https

Negrita Cursiva Imagen Enlace


Comentarios ofensivos o que no hagan al enriquecimiento del post serán borrados/editados por el administrador. Los comentarios son filtrados por ReCaptcha V3.