Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/01/2006, 23:15
califa010
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 3 meses
Puntos: 5
Buenas.

A mí me pasó algo parecido hace un tiempo. El problema es que la codificación de las páginas HTML por lo general suele ser iso-8859-1, pero la códificación que manda el XML es utf-8. Podés cambiar la codificación de los headers HTTP, pero, en mi experiencia, te va a traer más problemas que soluciones.

Cita:
"Un inusual evento astronómico ha servido para probar que la luna de Plutón, Caronte, no tiene atmósfera"
Esto de arriba está codificado en utf-8. La solución más rápida que encontré en mi caso fue cambiar la codificación del XML por iso-8859-1 y listo. Claro que pude hacerlo porque YO estaba generando el XML (con php). Si el XML ya viene armado, entonces esa opción no es válida (pero podés tenerla en cuenta para simplificarte la vida en otros casos; la desventaja es que, según leí en todos lados, utf-8 es mejor porque es el standard para XML).

Otro tema es que, aparentemente, la mayoría de los navegadores decodifican el código como iso-8859-1, a menos que cambies manualmente la codificación (al menos, en mi experiencia, no soy experto en el tema). Lo cual tampoco es una opción, porque cada visitante tendría que modificar una configuración en su navegador.

Resumiendo, como te dijeron en otro mensaje, vas a tener que modificar la codificación, pero tenés que usar la función utf8_decode(), porque lo que querés es pasar de utf-8 (lo que te manda el XML) a iso-8859-1... que es justamente lo que hace utf8_decode. Ojo, en este caso necesitás decode, no encode.

Hacé la siguiente prueba. Tirá esto
Cita:
"Un inusual evento astronómico ha servido para probar que la luna de Plutón, Caronte, no tiene atmósfera"
a alguna variable, aplicale la función y hacé un echo.

Código PHP:
$textoXML "Un inusual evento astronómico ha servido para probar que la luna de Plutón, Caronte, no tiene atmósfera"
$test utf8_decode($textoXML);
echo 
$test
Suerte
Califa