Foros del Web » Programando para Internet » PHP »

Duda importar txt para base de datos sql con Ñ y Acentos

Estas en el tema de Duda importar txt para base de datos sql con Ñ y Acentos en el foro de PHP en Foros del Web. He probado a importar ese txt con utf8_spanish_ci y latin1_spanish_ci y me sigue sin reconocer los acentos y ñ del txt alguna solucion?...
  #1 (permalink)  
Antiguo 29/08/2015, 13:25
 
Fecha de Ingreso: agosto-2015
Mensajes: 34
Antigüedad: 8 años, 8 meses
Puntos: 0
Duda importar txt para base de datos sql con Ñ y Acentos

He probado a importar ese txt con utf8_spanish_ci y latin1_spanish_ci

y me sigue sin reconocer los acentos y ñ del txt


alguna solucion?
  #2 (permalink)  
Antiguo 29/08/2015, 13:41
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: Duda importar txt para base de datos sql con Ñ y Acentos

En donde no te lo reconoce? En myphpadmin? O en el texto de la página web? Ya le pusiste a la tabla de la BD el tipo utf8_spanish_ci? Pusiste utf-8 como codificación en el header de la página? Al hacer la conexión a la BD especificaste el charset utf-8? Debes responder esas preguntas para saber en donde está el error porque no es lo mismo que en myphpadmin veas los caracteres correctos a que no.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #3 (permalink)  
Antiguo 29/08/2015, 14:32
 
Fecha de Ingreso: agosto-2015
Mensajes: 34
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Duda importar txt para base de datos sql con Ñ y Acentos

Cita:
Iniciado por chronos682 Ver Mensaje
En donde no te lo reconoce? En myphpadmin? O en el texto de la página web? Ya le pusiste a la tabla de la BD el tipo utf8_spanish_ci? Pusiste utf-8 como codificación en el header de la página? Al hacer la conexión a la BD especificaste el charset utf-8? Debes responder esas preguntas para saber en donde está el error porque no es lo mismo que en myphpadmin veas los caracteres correctos a que no.
muchas gracias por contestar, si no me reconoce las ñ y los acentos en el phpadmin, y si tiene puesto el utf8_spanish_ci en la base =S
  #4 (permalink)  
Antiguo 29/08/2015, 14:41
 
Fecha de Ingreso: agosto-2015
Mensajes: 34
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Duda importar txt para base de datos sql con Ñ y Acentos

Cita:
Iniciado por chronos682 Ver Mensaje
En donde no te lo reconoce? En myphpadmin? O en el texto de la página web? Ya le pusiste a la tabla de la BD el tipo utf8_spanish_ci? Pusiste utf-8 como codificación en el header de la página? Al hacer la conexión a la BD especificaste el charset utf-8? Debes responder esas preguntas para saber en donde está el error porque no es lo mismo que en myphpadmin veas los caracteres correctos a que no.
muchas gracias por contestar, si no me reconoce las ñ y los acentos en el phpadmin, y si tiene puesto el utf8_spanish_ci en la base =S

debo de sustituir utf8_spanish_ci en todos los collate?

CREATE TABLE `municipios` (
`id` bigint(11) NOT NULL auto_increment,
`provincia` int(2) NOT NULL,
`municipio` varchar(255) collate latin1_spanish_ci NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8123 DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci AUTO_INCREMENT=8123 ;

INSERT INTO `municipios` (`id`, `provincia`, `municipio`) VALUES(..........
  #5 (permalink)  
Antiguo 29/08/2015, 14:43
 
Fecha de Ingreso: agosto-2015
Mensajes: 34
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Duda importar txt para base de datos sql con Ñ y Acentos

lo he sustituido por esto pero se sigue sin ver bien en la base de datos




CREATE TABLE `municipios` (
`id` bigint(11) NOT NULL auto_increment,
`provincia` int(2) NOT NULL,
`municipio` varchar(255) collate utf8_spanish_ci NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8123 COLLATE utf8_spanish_ci AUTO_INCREMENT=8123 ;

INSERT INTO `municipios` (`id`, `provincia`, `municipio`) VALUES (
  #6 (permalink)  
Antiguo 29/08/2015, 16:41
 
Fecha de Ingreso: julio-2015
Mensajes: 7
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Duda importar txt para base de datos sql con Ñ y Acentos

Cita:
Iniciado por fralimo Ver Mensaje
lo he sustituido por esto pero se sigue sin ver bien en la base de datos




CREATE TABLE `municipios` (
`id` bigint(11) NOT NULL auto_increment,
`provincia` int(2) NOT NULL,
`municipio` varchar(255) collate utf8_spanish_ci NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8123 COLLATE utf8_spanish_ci AUTO_INCREMENT=8123 ;

INSERT INTO `municipios` (`id`, `provincia`, `municipio`) VALUES (
bueno yo tengo una bd con acentos y ñ y en letras mayúsculas aun que eso lo hago al momento de insertar un registro directamente con php formatian el texto con funciones como
Código PHP:
$nombre utf8_decode(mb_strtoupper($_POST['nombre'],'utf-8')); 
pero tambien e importado a la base de datos
Código:
ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=187
  #7 (permalink)  
Antiguo 30/08/2015, 05:12
 
Fecha de Ingreso: agosto-2015
Mensajes: 34
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Duda importar txt para base de datos sql con Ñ y Acentos

Cita:
Iniciado por hjuarez Ver Mensaje
bueno yo tengo una bd con acentos y ñ y en letras mayúsculas aun que eso lo hago al momento de insertar un registro directamente con php formatian el texto con funciones como
Código PHP:
$nombre utf8_decode(mb_strtoupper($_POST['nombre'],'utf-8')); 
pero tambien e importado a la base de datos
Código:
ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=187
entonces como he de modificar este texto que importo a la base de datos?

CREATE TABLE `municipios` (
`id` bigint(11) NOT NULL auto_increment,
`provincia` int(2) NOT NULL,
`municipio` varchar(255) collate utf8_spanish_ci NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8123 COLLATE utf8_spanish_ci AUTO_INCREMENT=8123 ;

INSERT INTO `municipios` (`id`, `provincia`, `municipio`) VALUES (
  #8 (permalink)  
Antiguo 30/08/2015, 07:02
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: Duda importar txt para base de datos sql con Ñ y Acentos

La función utf8_decode es propia de php por lo tanto no la puedes agregar al archivo txt porque mysql no va a saber qué hacer con ella y va a generar error. Para poder usarlas tendrías que ir agregando cada registro manualmente desde php. La otra opción que te dan si las puedes agregar, quedaría algo así:

CREATE TABLE `municipios` (
`id` bigint(11) NOT NULL auto_increment,
`provincia` int(2) NOT NULL,
`municipio` varchar(255) collate utf8_spanish_ci NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8123 COLLATE utf8_spanish_ci AUTO_INCREMENT=8123;
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #9 (permalink)  
Antiguo 30/08/2015, 07:26
 
Fecha de Ingreso: agosto-2015
Mensajes: 34
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Duda importar txt para base de datos sql con Ñ y Acentos

Cita:
Iniciado por chronos682 Ver Mensaje
La función utf8_decode es propia de php por lo tanto no la puedes agregar al archivo txt porque mysql no va a saber qué hacer con ella y va a generar error. Para poder usarlas tendrías que ir agregando cada registro manualmente desde php. La otra opción que te dan si las puedes agregar, quedaría algo así:

CREATE TABLE `municipios` (
`id` bigint(11) NOT NULL auto_increment,
`provincia` int(2) NOT NULL,
`municipio` varchar(255) collate utf8_spanish_ci NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8123 COLLATE utf8_spanish_ci AUTO_INCREMENT=8123;

he probado a poner lo que me has dicho en el archivo sql tipo texto que importo y phpadmin me sigue sin reconocer acentos ni ñ, y hacerlo a mano en codigo seria muy engorroso porque son 8100 registros......
  #10 (permalink)  
Antiguo 30/08/2015, 08:14
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: Duda importar txt para base de datos sql con Ñ y Acentos

Pero es muy raro, porque debería funcionar adecuadamente, yo importo los archivos sql así y no he tenido ningún problema con los acentos. Revisaste que el archivo txt tenga los acentos bien?

Edito: Acabo de generar un archivo con 500 registros que contienen ñ y acentos, cree una nueva tabla con este código:

Código SQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `Prueba` (
  2.   `Nombre` VARCHAR(20) COLLATE utf8_spanish_ci NOT NULL,
  3.   `Apellido` VARCHAR(20) COLLATE utf8_spanish_ci NOT NULL,
  4.   `Ciudad` VARCHAR(20) COLLATE utf8_spanish_ci NOT NULL,
  5.   `Pais` VARCHAR(20) COLLATE utf8_spanish_ci NOT NULL,
  6.   `Direccion` VARCHAR(20) COLLATE utf8_spanish_ci NOT NULL
  7. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;

Y luego al darle importar archivo seleccioné utf-8 en el conjunto de caracteres así:



Y con eso me importó tanto las ñ como los acentos. No sé p q a ti no te funciona.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]

Última edición por chronos682; 30/08/2015 a las 08:58
  #11 (permalink)  
Antiguo 30/08/2015, 11:29
 
Fecha de Ingreso: agosto-2015
Mensajes: 34
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Duda importar txt para base de datos sql con Ñ y Acentos

Si quisiera crearla mediante codigo php que es lo que deberia indicar? osea nada de importar sino ejecutar un documento php
  #12 (permalink)  
Antiguo 30/08/2015, 12:36
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: Duda importar txt para base de datos sql con Ñ y Acentos

Tendrías que tomar cada valor de cada campo y aplicarle la función utf_decode como te indicó hjuarez pero para la cantidad de registros que tienes va a ser muy engorroso. Si puedes coloca una parte del archivo txt con el que intentas hacer el import para ver cómo lo tienes diseñado, ojalá de aquellos registros que tienen ñ o acentos.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #13 (permalink)  
Antiguo 30/08/2015, 15:38
 
Fecha de Ingreso: agosto-2015
Mensajes: 34
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Duda importar txt para base de datos sql con Ñ y Acentos

a ver si veis algo raro....

Código SQL:
Ver original
  1. CREATE TABLE `municipios` (
  2. `id` BIGINT(11) NOT NULL AUTO_INCREMENT,
  3. `provincia` INT(2) NOT NULL,
  4. `municipio` VARCHAR(255) COLLATE utf8_spanish_ci NOT NULL,
  5. KEY `id` (`id`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8123 COLLATE utf8_spanish_ci AUTO_INCREMENT=8123 ;
  7.  
  8. INSERT INTO `municipios` (`id`, `provincia`, `municipio`) VALUES (1, 1, 'Alegría-Dulantzi'),
  9. (2, 1, 'Amurrio'),
  10. (3, 1, 'Añana'),
  11. (4, 1, 'Aramaio'),
  12. (5, 1, 'Armiñón'),
  13. (6, 1, 'Arraia-Maeztu'),
  14. (7, 1, 'Arrazua-Ubarrundia'),
  15. (8, 1, 'Artziniega'),
  16. (9, 1, 'Asparrena'),
  17. (10, 1, 'Ayala/Aiara'),
  18. (11, 1, 'Baños de Ebro/Mañueta'),
  19. (12, 1, 'Alegría-Dulantzi'),
  20. (13, 1, 'Amurrio')
  #14 (permalink)  
Antiguo 30/08/2015, 15:54
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: Duda importar txt para base de datos sql con Ñ y Acentos

Acabo de copiar tal cual el código que pusiste, lo pegué en un archivo txt y luego lo importé desde myphpadmin y funciona perfectamente, me crea la nueva tabla con 3 campos y en cada uno están los caracteres acentuados y las ñ. Intenté borrando toda la base de datos y creando una nueva sin seleccionar ningún cotejamiento y aún así lo seguía cargando bien. La única manera en la que no cargó los acentos a la BD era seleccionando un valor diferente a utf-8 en la lista desplegable que aparece debajo del botón donde se selecciona el archivo a importar, en donde dice Conjunto de caracteres del archivo. Ahí seleccioné uno de los que dice iso-... al azar y en ese caso si salían caracteres extraños. Puede ser que ahí tengas el problema. De resto no sé qué más pueda ser.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #15 (permalink)  
Antiguo 31/08/2015, 03:59
 
Fecha de Ingreso: agosto-2015
Mensajes: 34
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Duda importar txt para base de datos sql con Ñ y Acentos

Cita:
Iniciado por chronos682 Ver Mensaje
Acabo de copiar tal cual el código que pusiste, lo pegué en un archivo txt y luego lo importé desde myphpadmin y funciona perfectamente, me crea la nueva tabla con 3 campos y en cada uno están los caracteres acentuados y las ñ. Intenté borrando toda la base de datos y creando una nueva sin seleccionar ningún cotejamiento y aún así lo seguía cargando bien. La única manera en la que no cargó los acentos a la BD era seleccionando un valor diferente a utf-8 en la lista desplegable que aparece debajo del botón donde se selecciona el archivo a importar, en donde dice Conjunto de caracteres del archivo. Ahí seleccioné uno de los que dice iso-... al azar y en ese caso si salían caracteres extraños. Puede ser que ahí tengas el problema. De resto no sé qué más pueda ser.

yo juraria que los importaba con utf-8, muchas gracias no te preocupes gracias por tu ayuda ya os contare si encuentro la solucion

Etiquetas: acentos, sql, txt
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 14:26.