Foros del Web » Programando para Internet » PHP »

Codificación errónea al crear XML usando PHP DOM

Estas en el tema de Codificación errónea al crear XML usando PHP DOM en el foro de PHP en Foros del Web. Hola a todos, Tengo un script php que crea un documento xml con información proveniente de una base de datos. El script funciona muy bien, ...
  #1 (permalink)  
Antiguo 26/08/2008, 02:03
 
Fecha de Ingreso: febrero-2008
Mensajes: 63
Antigüedad: 16 años, 2 meses
Puntos: 0
Codificación errónea al crear XML usando PHP DOM

Hola a todos,

Tengo un script php que crea un documento xml con información proveniente de una base de datos.
El script funciona muy bien, pero la codificación no.
La información contenida en la base de datos tiene la codificación correcta y si la muestro en un php (simplemente para probarla) también se ve como debe.

Pero cuando hago lo siguiente con el fin de crear un documento xml:

Código:
$dom = new DOMDocument() ;

$queryz = "SELECT * FROM ticker";
$resultz = mysql_query($queryz) or die('Error, query failed');

$rss = $dom->createElement('rss');
while($row = mysql_fetch_array( $resultz )) {

    $item = $dom->createElement("item");
    $item->appendChild($dom->createElement("title", $row['item_title']));
    $item->appendChild($dom->createElement("pubDate",$row['item_pubDate']));
    $item->appendChild($dom->createElement("description",$row['item_description']));
    $item->appendChild($dom->createElement("link",$row['item_link']));
    $rss->appendChild($item);
   
}
$dom->appendChild($rss);

$dom->save("final.xml") ;
Obtengo final.xml todo lleno de caracteres extraños, parece algo como japonés (󮺠 ) cuando debería ser español (ó).

Tristemente no puedo sustituir caracter malo por caracter bueno, haciendo un replace, porque muchos de los caracteres extraños no siguen una secuencia lógica (algunos no sólo sustituyen la ó pero también una consonante contigua).

He intentado: $dom = new DOMDocument('1.0', 'iso-8859-1');
en vez de: $dom = new DOMDocument() ; pero obtengo un xml vacío ..

¿¿Cómo puedo resolver esto??
¡Muchas gracias de antemano!
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:00.