Foros del Web » Programando para Internet » PHP »

Problema al importar datos de un xml a mysql con los caracteres especiales

Estas en el tema de Problema al importar datos de un xml a mysql con los caracteres especiales en el foro de PHP en Foros del Web. Hola estoy realizando una aplicación que importa datos desde archivos xml a mysql, aunque la importación es correcta (me importa el mismo número de registros ...
  #1 (permalink)  
Antiguo 30/05/2013, 06:27
Avatar de triskell  
Fecha de Ingreso: junio-2007
Mensajes: 149
Antigüedad: 16 años, 10 meses
Puntos: 2
Pregunta Problema al importar datos de un xml a mysql con los caracteres especiales

Hola estoy realizando una aplicación que importa datos desde archivos xml a mysql, aunque la importación es correcta (me importa el mismo número de registros con sus respectivos datos) Los caracteres especiales (tildes, dieresis, la letra ñ, etc) los introduce mla en la BD. Los archivos los tengo codificados en UTF-8 con el notepad++ y los campos de la BD están en utf8_spanish_ci.

¿Cómo puedo solucionar este problema?

Os dejo a continuación el código que realiza la importación:
Código:
//Cargamos los datos de los cursos:
	$xml_fileCursos='txt/cursos.xml';
	if(file_exists($xml_fileCursos)) {
		$xmlCursos=simplexml_load_file($xml_fileCursos);
	} else {
		exit('Error al intentar improtar el fichero '.$xml_fileCursos);
	}
	
	$countCursos=0;
	foreach ($xmlCursos->Cursos as $cursos) {
		CargarTablaCursos($conn, $cursos);
		$countCursos++;
	}
	
	echo 'Total de cursos importados: '.$countCursos.'<br/><br/>';

//Función para cargar los cursos:
	function CargarTablaCursos($conn, $cursos) {
		$sql="INSERT INTO cursos (id, tipo_curso, jornadas, nombre_curso, fecha_inicio, fecha_fin, lugar, organizado_por, para,
		horas, firma1, firma2, firma3, firma4, precio) 
		VALUES ('".$cursos->ID_Curso."','".$cursos->Tipo_Curso."','".$cursos->Jornadas."','".$cursos->Nombre_x0020_curso."',
		'".$cursos->Fecha_x0020_Inicio."','".$cursos->Fecha_x0020_Final."','".$cursos->Lugar."','".$cursos->Organizado_x0020_por."',
		'".$cursos->Para."','".$cursos->Horas."','".$cursos->Firma1."','".$cursos->Firma2."','".$cursos->Firma3."','".$cursos->Firma4."',
		'".$cursos->Precio."')";
		
		try {
			$conn->query($sql);
		}
		catch(PDOException $e) {
			echo $e.'<br/><br/>';
		}
	}
P.D.: La excepción no devuelve ningún error.
  #2 (permalink)  
Antiguo 30/05/2013, 06:53
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema al importar datos de un xml a mysql con los caracteres especiales

Seguramente el xml no usa el mismo juego de caracteres, prueba a usar utf8_encode() para convertir los datos.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 30/05/2013, 13:28
Avatar de triskell  
Fecha de Ingreso: junio-2007
Mensajes: 149
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: Problema al importar datos de un xml a mysql con los caracteres especiales

Gracias Triby, probaré la solución que me das.

Etiquetas: caracteres, especiales, mysql, registro, sql, tabla, xml
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 22:04.