Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: :ohk<any> en 16 Diciembre 2009, 20:09 pm



Título: Duda a la hora de sacar un buckup
Publicado por: :ohk<any> en 16 Diciembre 2009, 20:09 pm
Hola, cuando saco un buckup via phpmyadmin y luego quiero cargarlo a otro lugar, los acentos se pierden y las cadenas se ven algo asi:

* Designación
* colaboración, etc

Como tengo que hacer a la hora de sacar el buckup o a la hora de cargar la bd en el nuevo sitio para que los acentos me salgan sin problemas?
Espero su ayuda, saludos


Título: Re: Duda a la hora de sacar un buckup
Publicado por: Nakp en 17 Diciembre 2009, 01:31 am
tiene que ver con la codificación de caracteres de tu base de datos, y la que importas... asegúrate que sea la misma en ambos casos...

o que estas exportando e importando bases de datos y no tablas xD


Título: Re: Duda a la hora de sacar un buckup
Publicado por: ^Tifa^ en 17 Diciembre 2009, 03:03 am
Como te dice Napk debes verificar la codificacion de caracteres de las tablas a las cuales le haces backup, y como se restaura ese backup y que tablas tienen soporte para esa codificacion  ;)

Por ejemplo:

Citar
mysql> show create table ejemplo;
+---------+---------------------------------------------------------------------------------------------------+
| Table   | Create Table                                                                                      |
+---------+---------------------------------------------------------------------------------------------------+
| ejemplo | CREATE TABLE `ejemplo` (
  `nombres` char(20) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+---------+---------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> show create table prueba;
+--------+-------------------------------------------------------------------------------------------------+
| Table  | Create Table                                                                                    |
+--------+-------------------------------------------------------------------------------------------------+
| prueba | CREATE TABLE `prueba` (
  `nombres` char(20) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=ascii |
+--------+-------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

Tengo 2 tablas ejemplo y prueba, fijate que ejemplo dice CHARSET latin1 y prueba dice CHARSET ascii = US, ahora mira que datos posee ejemplo:

Citar
mysql> select * from ejemplo;
+--------------+
| nombres      |
+--------------+
| Mañana       |
| ortográficos |
| surgió       |
| prosódicos   |
+--------------+
4 rows in set (0.00 sec)

la tabla ejemplo al tener definido el idioma 'latin1' que es latino, soporta acentos, enies, etc. Sin embargo la tabla prueba que tiene definido codificacion de caracteres ascii = US

Citar
mysql> insert into prueba values('prosódicos'),('surgió'),('Mañana');                                                                       
Query OK, 3 rows affected, 3 warnings (0.00 sec)                                                                                           
Records: 3  Duplicates: 0  Warnings: 0                                                                                                     

mysql> show warnings;
+---------+------+-------------------------------------------------------------------+
| Level   | Code | Message                                                           |
+---------+------+-------------------------------------------------------------------+
| Warning | 1366 | Incorrect string value: '\xF3dicos' for column 'nombres' at row 1 |
| Warning | 1366 | Incorrect string value: '\xF3' for column 'nombres' at row 2      |
| Warning | 1366 | Incorrect string value: '\xF1ana' for column 'nombres' at row 3   |
+---------+------+-------------------------------------------------------------------+
3 rows in set (0.00 sec)     

Y mira como se ven los datos:

Citar
mysql> select * from prueba;
+------------+
| nombres    |
+------------+
| pros?dicos |
| surgi?     |
| Ma?ana     |
+------------+
3 rows in set (0.00 sec)

Ojo con el CHARSET que tiene definido cada tabla en relacion a los registros que guarda.  ;)


Título: Re: Duda a la hora de sacar un buckup
Publicado por: :ohk<any> en 17 Diciembre 2009, 15:06 pm
Entonces me quedo con Latin1, muchas gracias  :rolleyes: