Comunidad de diseño web y desarrollo en internet online

Problema con caracteres especiales (í n)(php , xml y flash)

Citar            
MensajeEscrito el 20 Oct 2007 09:18 pm
Hola a todos antes ya puse a consideracion este problema y creo que no entendieron el problema que tengo..

Estoy haciendo un libro de visitas con flash, php, xml y mysql.. todo esta bien en el ingreso, cuando hago un ingreso con tildes la db los recibe muy bien el problema es al leerlos, para despues mostrar en el swf el codigo que utilizo en el php es:

con esto leo los registros

Código :

$row=mysql_num_rows($consulta);
if($row>0){
   print "&erroMensagem=0";
   $libro = "<?xml version='1.0'?><libro>";
   for($i=0; $i<$row; $i++) {
      $nombre = urlencode(htmlspecialchars(mysql_result($consulta,$i,"nombre")));
      $email = mysql_result($consulta,$i,"email");
      $fecha = mysql_result($consulta,$i,"fecha");
      $lugar = urlencode(htmlspecialchars(mysql_result($consulta,$i,"lugar")));
      $comentario = urlencode(htmlspecialchars(mysql_result($consulta,$i,"comentario")));
      $libro .= ("<comentarios nombre='$nombre' email='$email' lugar='$lugar' fecha='$fecha' comen='$comentario'/>");   
       print "$libro";
   }
   $libro .= "</libro>";
   $archivo = fopen("libro.xml", "w");
    fwrite($archivo, utf8_encode($libro));
   fclose($archivo);
} else {
   print "&erro=NO SE ENCONTRO NINGUN REGISTRO!&erroMensagem=1";
}

Genero un xml, pero dentro del xml me pone esto

Código :

?xml version='1.0'?>
<libro><
comentarios nombre='j' email='jj@
[email protected],' lugar='jdj' fecha='20/10/2007' comen='%C3%AD'/><comentarios nombre='ss' email='[email protected]' lugar='kkk' fecha='20/10/2007' comen='%26amp%3BAtilde%3B%26amp%3Bshy%3B'/>
<comentarios nombre='ii' email='[email protected]' lugar='sss' fecha='20/10/2007' comen='%26amp%3BAtilde%3B%26amp%3Bshy%3B'/</libro>

figense que todas las tildes y eñes me salen mal.. cual es el error
:oops:
gracias quien me ayude con sus conejos.. ya he utilizado utf8_encode, y todo lo que he leido por ahi...

Por Sochmal

53 de clabLevel



 

cuenca

msie
Citar            
MensajeEscrito el 23 Oct 2007 03:06 pm
A mi me pasó algo parecido, pero llegue a un apaño que me solucionó el problemas por el momento. Utilicé un traductor, que me traducía los carácteres especiales a código HTML, de esa forma cuando lo escribes directamente en HTML salía perfectamente, y si lo que quieres mostrar en Flash, deberás hacer la traducción contraría

Código :

function HTML_filtro($contenido){
      $contenido=ereg_replace("Á","&Aacute;",$contenido);
      $contenido=ereg_replace("À","&Agrave;",$contenido);
      $contenido=ereg_replace("È","&Egrave;",$contenido);
      $contenido=ereg_replace("Ì","&Igrave;",$contenido);
      $contenido=ereg_replace("Ò","&Ograve;",$contenido);
      $contenido=ereg_replace("Ù","&Ugrave;",$contenido);
      
      return $contenido;
   }


Yo solo he hecho unos cuantos pocos, pero está lista se puede alargar lo que quieras con las Ñ y todas las tíldes. Luego para hacer la traducción inversa en fácil, solo tienes que poner alcontrario los parámetros. Ejemplo:

Código :

$contenido=ereg_replace("&Aacute;", "Á" ,$contenido);


Como se usa:

Código :

$texto = "La niña parecía feliz";
$texto = HTML_filtro($texto);


Espero que haya sido de alguna utilidad. Saludos!

Por sesperanto

0 de clabLevel



 

opera
Citar            
MensajeEscrito el 23 Oct 2007 10:54 pm

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 09 Nov 2007 02:25 pm
Gracias a todos por responder las dudas.. les cuento que todo esta funcionado muy bien.. si quieren puede mirar

http://www.solocuenca.com/libro/

si quieren el codigo envienme un mail y con gusto les doy

GRACIAS OTRA VEZ, SON DE MUCHA AYUDA... :D

Por Sochmal

53 de clabLevel



 

cuenca

firefox
Citar            
MensajeEscrito el 01 Sep 2008 11:11 pm
Hola a todos, tengo un problema y espero me puedan ayudar porque busqué por todos lados y no encuentro nada.
Resulta que estoy enviando variables de php a flash y las muestro en una caja de texto dinamico pero no veo los signos de "+" (suma), es una cadena con letras y signos'+' y quiero que lo muestre textual. Cuando lo pruebo de php a html va bien. Espero una solución, muchas gracias. :(

Por mfares07

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Sep 2008 06:55 pm
No entiendo bien cual es el problema que tienes.. si puedes explicarte mejor.. Disculpa

Por Sochmal

53 de clabLevel



 

cuenca

safari
Citar            
MensajeEscrito el 05 Sep 2008 06:30 am
Ya lo solucioné! para el que le interese paso a contar: yo enviaba variables de php a flash pero en la caja de texto dinamico de flash no se mostraban los signos de suma "+", los interpretaba como espacios (supongo que porque el flash los entendía como si fuese una concatenación). En fin, lo que hice entonces fue usar en el php la función str_replace("+","¿",$consulta) (osea, reemplazo los signos "+" por "¿") y luego en flash reemplazo el "¿" por el "+", si alguien sabe una mejor solución será digna de ser recibida. Muchas gracias :wink:

Por mfares07

1 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.