Buenas
He visto por ahi varios post en los que la gente pregunta sobre problemas que tiene al intentar mostrar la ñ desde un archivo xml, y a lo que se responde con que la solucion es guardar el archivo xml codificado en utf-8.
Mi problema es que yo no guardo el archivo, sino que, tal como se crea se muestra por pantalla. De hecho, el codigo que uso es copiado desde la pagina de Google Maps (http://code.google.com/support/bin/answer.py?answer=65622 ), y es el siguiente:
Código PHP:
<?php
require("phpsqlajax_dbinfo.php");
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
// Opens a connection to a MySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can't use db : ' . mysql_error());
}
// Select all the rows in the markers table
$query = "SELECT * FROM markers WHERE 1";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
header("Content-type: text/xml");
// Start XML file, echo parent node
echo '<markers>';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker ';
echo 'name="' . parseToXML($row['name']) . '" ';
echo 'address="' . parseToXML($row['address']) . '" ';
echo 'lat="' . $row['lat'] . '" ';
echo 'lng="' . $row['lng'] . '" ';
echo 'type="' . $row['type'] . '" ';
echo '/>';
}
// End XML file
echo '</markers>';
?>
Este codigo no muestra las ñ por pantallas. Añadi un
Código:
$xmlStr=str_replace("ñ",'ñ',$xmlStr);
a la funcion parseToXML(), pero se cortaba la ejecucion en ese punto (se ve que los datos de la bbdd vienen directamente sin la ñ).
¿Que puedo hacer?
Gracias de antemano