Ver Mensaje Individual
  #9 (permalink)  
Antiguo 31/10/2008, 11:36
urko1982
 
Fecha de Ingreso: mayo-2007
Mensajes: 9
Antigüedad: 17 años
Puntos: 0
Respuesta: Codificación iso-8859-1 y UTF-8

Bueno, he estado quitando y poniendo cosas en el javascript y todavía no he conseguido nada. No encuentro ninguna función análoga a setCharEncoding() ni a
decodeUTF8InputOn() para aplicarla en ajax (o al menos ni idea de cómo usarla). Como último recurso cambiaría el .js por lo de xajax (aunque me tocaría transformarlo todo y de paso aprenderlo ;) ) Coloco el código por si a alguna alma cándida se le ocurre alguna solución. Gracias

Código:
function crearObjetoAjax(){
    var xmlhttp=false; 
    try{ 
        // Creacion del objeto AJAX para navegadores no IE
        xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
    }
    catch(e){ 
        try  { 
            // Creacion del objet AJAX para IE 
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        catch(E) { xmlhttp=false; }
    }
    if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); } 
    
    return xmlhttp; 
}

function hola(obj,tabla) {
        
    recolocar(obj.id);
    // Obtener la instancia del objeto XMLHttpRequest
    peticion_http=crearObjetoAjax();
        
    // Preparar la funcion de respuesta
    peticion_http.onreadystatechange = muestraContenido;
    var miUrl="autocompletar.php"
    var parametros="texto="+decodificar_b(obj.value)+"&tabla="+tabla+"&id="+obj.id;
    
    // Realizar peticion HTTP
    peticion_http.open("POST", miUrl, true);
    peticion_http.setRequestHeader('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
    peticion_http.send(parametros);
    
    
    ////modificado
    http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');
    peticion_http.send(null);
    function muestraContenido() {
        if(peticion_http.readyState == 4) {
            if(peticion_http.status == 200) {
                lista=document.getElementById('hola2');
                lista.innerHTML=peticion_http.responseText;
                aux = 20*lista.getElementsByTagName('div').length;
                if(aux>100) aux=120;
                lista.style.height=aux+'px';
                lista.style.display="block";
                if(aux==0) lista.style.display="none";
            }
        }
    }
}
Por cierto, al que le sirva el código que lo coja sin problemas. Saludos.



Cita:
Iniciado por mayik81 Ver Mensaje
Yo tuve ese problema cuando añadi a mis proyectos XAJAX.


Si no usas xajax ó ajax ( yo es que no trabajo con ajax a pelo, uso la libreria de xajax) no tienes que hacer nada , simplemente poner bien los headers y ya esta

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta name="Content-Type" content="text/html; charset=iso-8859-1" />
.....
</head>

Si usas xajax antes de registrar las funciones debes poner:
$xajax->setCharEncoding("iso-8859-1");
$xajax->decodeUTF8InputOn();