Comunidad de diseño web y desarrollo en internet online

ACENTOS en DATAGRID desde REMOTING

Citar            
MensajeEscrito el 18 Sep 2005 10:38 pm
hola gente, trabajo conel tutorial de Maikel (http://www.cristalab.com/tutoriales/117/bases_de_datos_con_flash_y_amfphp)

y bueno, no me sale los caracteres especiales ni acentos, mi servicio esta asi:

Código :

function muestra($secc){
   $this->query();
   $sql=mysql_query ("SELECT titular FROM politica WHERE seccion= '".$secc."'ORDER BY id DESC LIMIT 0,7");   
   mysql_close(); 
   return $sql;


y yo lo recibo en mi flash asi:

Código :


capturaRespuesta.muestra_Result = function(data) {
   dg.dataProvider = data;
};




y SI ME CARGA la informacion, pero no los acentos, y ojo, es solo en mi DATAGRID, porq lo cargo en otro lado y si puedo leer BIEN TODO

alguien tiene alguna idea de como solucionar el problema

gracias de todas formas

:crap:

Por vassili

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 18 Sep 2005 11:04 pm
Hola, supongo que estas usando AMFPHP 0.9 porque es el que da mas problemas con esto de las tildes y caracteres especiales, la version de AMFPHP 1.0 ya viene con codifcacion utf8 por defecto asi que no habria que preocuparse por eso, pero bueno una forma en que yo solucione esto con AMFPHP 0.9 fue valiendome de funciones de flash para codificacion y decodificacion como lo son escape y unescape respectivamente, aparte de la funcion de php uft8_encode, explicare un poco como hice esto con el codigo del tutorial:

*cuando voy a enviar un valor desde la pelicula flash al servicio(codigo de AMFPHP) lo mando con la funcion escape, en el caso del tutorial lo hacia para las opciones de insertar y modificar

case 1:
servicio.insertar(escape(nombretxt.text), escape(comentariostxt.text));
trace("confirmo insertar");
break;
case 2: //modificar id, nombre, comentarios
servicio.modificar(idtxt.text,escape(nombretxt.text),escape(comentariostxt.text));
trace ("confirmo modificar");
break;


* ahora para que php entienda esta codificacion uso la funcion utf8_encode en los metodos insertar y modificarla (insisto del ejemplo del tutorial), :

function insertar($nombre,$comentarios){
$nombre = utf8_encode($nombre);
$comentarios = utf8_encode($comentarios);
$sql= "INSERT INTO prueba (id,nombre,comentarios) VALUES ('','".$nombre."','".$comentarios."')";
return $this->query($sql,1); //retornamos el id de nuestro registro insertado
}
function modificar ($id,$nombre,$comentarios){
$nombre = utf8_encode($nombre);
$comentarios = utf8_encode($comentarios);
//creamos la cadena de nuestra sentencia(query) SQL
$sql = "UPDATE `prueba` SET `nombre` ='".$nombre."', `comentarios` ='".$comentarios."' WHERE `id` =".$id." LIMIT 1;";
return $this->query($sql,0);
}


Ahora eso dos es para insertar y/o modificar datos de la tabla de la base de datos, pero necesitamos mostrar los datos en flash, bueno en este caso en el codigo del servicio no se hara NADA, pero si en la recepcion de flash y bueno lo haremos con unescape, y justamente en la recepcion del metodo consulta que es el que recibe los datos de los campos nombre y comentarios:

capturaRespuesta.consulta_Result = function (data){
var proveedor:Array = new Array();
btnInsertar.enabled=true;
if (data){
if (data.getLength()){
for (i=0; i<data.getLength();i++){
proveedor.addItem({id:data.getItemAt(i).id,nombre:unescape(data.getItemAt(i).nombre),comentarios:unescape(data.getItemAt(i).comentarios)});
}
// demas codigo
}


Ahora en las consideraciones del tutorial explico las consecuencia de usar esto :wink:

saludos :D

PD: para la version 1.0 de AMFPHP no hay necesidad de hacer todo esto, porque trabaja con la utf8 por defecto

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox

 

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