Es mi primer mensaje en el foro, y no sé muy bien si ponerlo aquí o en el foro de PHP...
Os explico mi problema: estoy mostrando un archivo XML con PHP buscando información en una base de datos codificada en utf8_general_ci. Els archivo me muestra bien los acentos y demás carácteres especiales, excepto las comillas simples (').
Os dejo el código que estoy usando:
Código PHP:
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("content-type:text/xml");
$name=$_GET['name'];
require ("include/dbconnect.php");
$query="";
echo "<?xml version='1.0' encoding='utf-8'?><markers>";
if ($name != ""){
if ($name=='tots'){
$query="SELECT name,lat,lng,county,type,elevation FROM tutor";
}
if ($name=='prehistoria'){
$query="SELECT name,lat,lng,county,type,elevation FROM tutor WHERE county='Jefferson' limit 10";
}
if ($name=='antiga'){
$query="SELECT name,lat,lng,county,type,elevation FROM tutor WHERE county='Clackamas' limit 20";
}
if ($name=='parc'){
$query="SELECT name,lat,lng,county,type,elevation FROM tutor WHERE class='park' limit 20";
}
if ($name=='vila'){
$query="SELECT nom,lat,lng,edat,tipus,patrimoni,descripcio FROM llocs_mapa";
}
if ($query != ""){
$results = mysql_query($query);
while ($row=mysql_fetch_array($results)){
echo utf8_encode('<marker html="'.$row[0].'" lat="'.$row[1].'" lng="'.$row[2].'" county="'.$row[3].'" type="'.$row[4].'" elev="'.$row[5].'" descripcio="'.$row[6].'"/>'); }
}
}
echo "</markers>";
?>
Alguien me puede ayudar? Muchísimas gracias!
Nota: Pongo los enlaces en negrita porque no me deja ponerlos hasta que tenga 30 días de antigüedad...
ACTUALIZACIÓN: He coneguido mostrar bien las comillas cambiando el charset a latin1 y quitando el utf8_encode() del final del código. Es una buena solución?