Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Importar texto con acentos

Estas en el tema de Importar texto con acentos en el foro de Mysql en Foros del Web. Hola a todos, mi problema es que al importar una tabla con phpMyAdmin, se me corta el texto de un campo de tipo longtext justo ...
  #1 (permalink)  
Antiguo 21/05/2011, 18:13
Avatar de Gambinoh  
Fecha de Ingreso: diciembre-2010
Mensajes: 348
Antigüedad: 13 años, 11 meses
Puntos: 11
Importar texto con acentos

Hola a todos, mi problema es que al importar una tabla con phpMyAdmin, se me corta el texto de un campo de tipo longtext justo en las letras que tienen acento.

El archivo que tengo que importar es un SQL.txt, y esta es la estructura de la tabla:

Cita:
CREATE TABLE IF NOT EXISTS `elementos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`volumen` char(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
`velocidad` char(75) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
`densidad` char(150) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
`trayectoria` char(75) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
`descripcion` longtext CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
`altura` char(150) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=110001 ;
Ando algo perdido ya que nunca antes había exportado una base de datos...

Muchas gracias por adelantado ^^
  #2 (permalink)  
Antiguo 21/05/2011, 18:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Importar texto con acentos

Asegúrate primero que el archivo que estás tratando de importar esté realmente en UTF-8 y no en ANSI o UNICODE.
Es el problema más habitual.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 21/05/2011, 18:35
Avatar de Gambinoh  
Fecha de Ingreso: diciembre-2010
Mensajes: 348
Antigüedad: 13 años, 11 meses
Puntos: 11
Respuesta: Importar texto con acentos

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Asegúrate primero que el archivo que estás tratando de importar esté realmente en UTF-8 y no en ANSI o UNICODE.
Es el problema más habitual.
¿Y eso donde lo podría ver?

He probado importando con el juego de caracteres latin1 y ya se ven los acentos. No he visto las opciones ANSI o UNICODE a la hora de importar...
  #4 (permalink)  
Antiguo 21/05/2011, 19:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Importar texto con acentos

No son opciones. Es la codificación del archivo a la hora de generarlo.
Puedes verlo cuando lo abres con el Notepad y le pones "Grabar como...". En los tipos de archivo aparece cuál es el activo en ese momento.
A veces sucede que cuando usas Excel u otro programa para grabar tablas de datos para importar, estas aplicaciones lo graban como UNICODE, lo que suele generar problemas.
En tu caso, lo que es obvio es que el problema es que el Charset del archivo no era utf-8, como tu suponías.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 21/05/2011, 21:51
Avatar de Gambinoh  
Fecha de Ingreso: diciembre-2010
Mensajes: 348
Antigüedad: 13 años, 11 meses
Puntos: 11
Respuesta: Importar texto con acentos

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No son opciones. Es la codificación del archivo a la hora de generarlo.
Puedes verlo cuando lo abres con el Notepad y le pones "Grabar como...". En los tipos de archivo aparece cuál es el activo en ese momento.
A veces sucede que cuando usas Excel u otro programa para grabar tablas de datos para importar, estas aplicaciones lo graban como UNICODE, lo que suele generar problemas.
En tu caso, lo que es obvio es que el problema es que el Charset del archivo no era utf-8, como tu suponías.
Cuando lo abro en el editor de texto gedit, me aparece "Occidental (ISO-8859-15)".

El Bloc de Notas de Windows me dice (en guardar como) que la codificación es ANSI...

¿Debería de cambiar los parámetros que definen la estructura de la tabla en el archivo SLQ.txt?

PD: Muchas gracias por tu ayuda...

PD2: Sí alguien sabe aunque sea de un tutorial que explique el tema del Charset en MySQL, le agradecería muchísimo que me pasara el enlace. En fin cualquier ayuda al respecto por mínima que sea me valdrá ^^

Última edición por Gambinoh; 21/05/2011 a las 22:32
  #6 (permalink)  
Antiguo 22/05/2011, 09:08
Avatar de Gambinoh  
Fecha de Ingreso: diciembre-2010
Mensajes: 348
Antigüedad: 13 años, 11 meses
Puntos: 11
Solucionado

Bueno, finalmente ya lo he solucionado (con las indicaciones de gnzsoloyo).

Edité con gedit la estructura de la tabla dando a los campos y a la propia tabla cotejamiento (COLLATE) utf8_unicode_ci, después le di a [Guardar como] y seleccioné utf-8.

Todo esto teniendo en cuenta que en la cabecera de la página hay esta etiqueta meta:

Cita:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
Y por último, justo después de seleccionar la base de datos, añado esto:

Cita:
mysqli_query($conexion, "SET NAMES 'utf8'");

// Con mysql_query (en lugar de usar mysqli_query) sería: mysql_query ("SET NAMES 'utf8'");

Última edición por Gambinoh; 22/05/2011 a las 12:34

Etiquetas: acentos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:02.