Retroceder   Foros del Web > Programación para sitios web > XML

Respuesta
 
Herramientas Desplegado
Antiguo 16-abr-2008, 12:09   #1 (permalink)
jemarquesini ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2006
Mensajes: 32
Problemas con la ñ

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('<','&lt;',$htmlStr); 
$xmlStr=str_replace('>','&gt;',$xmlStr); 
$xmlStr=str_replace('"','&quot;',$xmlStr); 
$xmlStr=str_replace("'",''',$xmlStr); 
$xmlStr=str_replace("&",'
&amp;',$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("ñ",'&ntilde;',$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
jemarquesini está desconectado   Responder Citando
Antiguo 16-abr-2008, 12:13   #2 (permalink)
jemarquesini ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2006
Mensajes: 32
Re: Problemas con la ñ

Hay un error en el codigo php puesto antes. De hecho no es un error, lo puse bien, pero está mal interpretado y se muestra mal en el foro.

$xmlStr=str_replace("'",'&#39',$xmlStr); se interpreta como $xmlStr=str_replace("'",''',$xmlStr); y hace que el resto del codigo se vuelva una cadena de texto.

Saludos
jemarquesini está desconectado   Responder Citando
Antiguo 16-abr-2008, 13:32   #3 (permalink)
$moderador{'Esteban'}
monoswim llegará a ser famoso muy prontomonoswim llegará a ser famoso muy pronto
 
Avatar de monoswim
 
Fecha de Ingreso: noviembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 7.322
Enviar un mensaje por MSN a monoswim
Re: Problemas con la ñ

para ñ y acentos no debes usar UTF8, sino iso-8859-1...

__________________
MonoSwim

Antes era fanfarrón y canchero, ahora soy perfecto !!!!!!!
monoswim está desconectado   Responder Citando
Antiguo 16-abr-2008, 16:18   #4 (permalink)
Colaborador
Mikmoro llegará a ser famoso muy prontoMikmoro llegará a ser famoso muy prontoMikmoro llegará a ser famoso muy prontoMikmoro llegará a ser famoso muy prontoMikmoro llegará a ser famoso muy pronto
 
Avatar de Mikmoro
 
Fecha de Ingreso: octubre-2006
Ubicación: A tu espalda
Mensajes: 2.873
Re: Problemas con la ñ

Buenas. En la función me parece ver un pequeño error en la cuarta línea.
Ahí el coloreado del código cambia, y es porque no está reconociendo los caracteres. Si lo que quieres es reemplazar la comilla simple ('), lo deberías hacer por &apos;

function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','&lt;',$htmlStr);
$xmlStr=str_replace('>','&gt;',$xmlStr);
$xmlStr=str_replace('"','&quot;',$xmlStr);
$xmlStr=str_replace("'",'&apos;',$xmlStr);
$xmlStr=str_replace("&",'&amp;',$xmlStr);
return $xmlStr;
}

Yo probaría a volver a poner la &ntilde; como primer línea, a ver qué pasa.

Otra cosa: ¿por qué en la primera línea, para el lt pones $htmlStr y para el resto $xmlStr?

Mikel.
Mikmoro esta en línea ahora   Responder Citando
Antiguo 20-abr-2008, 20:16   #5 (permalink)
Colaborador
jam1138 llegará a ser famoso muy prontojam1138 llegará a ser famoso muy pronto
 
Avatar de jam1138
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 7.563
Re: Problemas con la ñ

Cita:
Iniciado por jemarquesini Ver Mensaje
Mi problema es que yo no guardo el archivo, sino que, tal como se crea se muestra por pantalla.
Al igual que especificas mediante cabeceras HTTP que el contenido es un XML, especifica que el juego de caracteres es UTF-8.

Código PHP:
header("Content-type: text/xml; charset=utf-8"); 
__________________
» ¿Cómo hacer preguntas inteligentes? «
jam1138 está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 04:47.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93