Me paso algo parecido el otro dia, veo que por suerte no soy al unico que les pasan estas cosas
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
Y para completar: en estos días migran mi base de datos también pero ya está todo en UTF-8, espero que no hagan cagadas, jajaja
PS: post auspiciado por el famoso gato
Otros posts que podrían llegar a gustarte...
Comentarios
-
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
-
Después de tanto renegar, yo terminé corrigiendo todo a mano. Si tengo que migrar otra vez de hosting, arranco otra vez de cero.
-
En mi caso nunca tuve problema guardo todo usando el htmlentities y stripslashes y va como piña, espero que no haya sido casualidad :rolleyes:
Saludos
-
Yo lo huebiera hecho a lo cabeza (manualmente) porque mi base de datos no pesa nada, pero es para tener en cuenta el tp ;)
-
¿Osea que el archivo UTF-8 que genera la exportación de MYSQL no tiene el BOM?
que truuuuuuuuuuuuuucho
-
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?
-
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 ;)
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.... :rolleyes: naaaaaaa, otra vez no...
-
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.
-
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 ;)
-
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
-
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
-
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 :rolleyes:
El Zurdo