Foros del Web » Programando para Internet » PHP »

Problema con codificacion de caracteres

Estas en el tema de Problema con codificacion de caracteres en el foro de PHP en Foros del Web. Hola, estoy pasando unos archivos que vienen en formato XML a mysql a través de php. El problema que tengo es cuando estoy leyendo un ...
  #1 (permalink)  
Antiguo 09/02/2011, 13:39
 
Fecha de Ingreso: febrero-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 3
Problema con codificacion de caracteres

Hola, estoy pasando unos archivos que vienen en formato XML a mysql a través de php. El problema que tengo es cuando estoy leyendo un elemento que viene con " Cargo el contenido de una de esas etiquetas en una variable y esta se la intento pasar a una base de datos entonces me da un erro de syntaxis mysql.

Aunque todavia no me he puesto con las direcciones es posible que al leer direcciones web e intentar almacenarlas en la base de datos.

Edito: ¿A que se puede deber que visualice el caracter �, en vez de a una vocal con acento?.

Última edición por budoky; 09/02/2011 a las 13:46
  #2 (permalink)  
Antiguo 09/02/2011, 14:24
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Problema con codificacion de caracteres

$caracter=" " hola "";
$caracter_filtrado=str_replace('"','�',$carac ter);
echo $caracter_filtrado;

Fijate si esa funcion te sirve..
el problema viene si estas usando latin1 utf-8 etc....
El archivo XML el archivo PHP y la base de datos tiene que tener la misma configuracion.
tambien ahi que ver si el caracter � esta dentro de la configuracion de la collation.
__________________
Mono programando!
twitter.com/eguimariano
  #3 (permalink)  
Antiguo 09/02/2011, 15:45
 
Fecha de Ingreso: febrero-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: Problema con codificacion de caracteres

Mi intencion era sustituir los " para que entrasen dentero de la base de datos, he usado lo que me has propuesto, se ha quedado en str_replace("\"",&quot,$cadena), gracias!!.

El caracter �, es un problema a parte, creo que me he explicado mal. En el XML esta definido como: <?xml version="1.0" encoding="UTF-8"?>, en la base de datos lo tengo como utf8_general_ci y en el php no se como mirarlo/cambiarlo.

Todo esto lo estoy haciendo con un Drupal de por medio, he probado a cargar el archivivo sin ejecutarlo a traves de Drupal y si se muestra bien. La cabecera que tiene la página generada por drupal es: meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  #4 (permalink)  
Antiguo 09/02/2011, 15:49
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Problema con codificacion de caracteres

El verdadero problema con esos caracteres es que no sabes en realidad que son y pueden ser varios, como letras con acentos, caracteres especiales etc. Lo mejor sería que hicieras una conversión con utf8_encode("$Mi_cadena_con_rombitos"); o bien utf8_decode("$Mi_cadena_con_rombitos"); y finalmente tratar de detectar la codificación y hacer la transformación con iconv(), aunque esto último sólo funciona si tienes las librerías adecuadas de php y no siempre estan disponibles en todas las versiones/servidores

Etiquetas: caracteres, codificacion
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 08:15.