Visualizzazione dei risultati da 1 a 2 su 2

Discussione: java ajax e charset

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    309

    java ajax e charset

    Ciao
    ormai è da un giono e mezzo che ci sbatto la testa ma non ne vango a capo.
    nel db il charset è utf-8. Nelle pagine jsp ho dovuto settare ISO-8859-1 altrimenti mi dava problema sui caratteri accentati. Ora in 2 pagine in particolare, posso pescare da db un richiedente esistente. faccio una chiamata con ajax e mi faccio restituire una stringa, dove ogni elemento lo separo con "|". una volta presi i dati splitto il tutto e riempo i campi di un form. Solo quando prendo i dati tramite ajax i caratteri accentati diventano rombi con un punto interrogativo all'interno. il metodo che uso in ajax è get e all'url passo anche un attributo. Ho provato a cercare nel forum ma non sono riuscito a trovare soluzioni. Nella action (uso struts 2) ho fatto stampare le variabili nel log e sono corrette. nella jsp niente da fare
    di seguito la parte di ajax:
    codice:
    url = "getRichiedente.action?id=" + ricc;
                        ajax.open("get", url, true);
                        ajax.setRequestHeader("content-type", "text/html;charset=ISO-8859-1");
                        ajax.setRequestHeader("connection", "close");
    
                        // impostazione controllo e stato della richiesta
                        ajax.onreadystatechange = function() {
                            // verifica dello stato
                            if(ajax.readyState === readyState.COMPLETATO) {
                                alert(ajax.getAllResponseHeaders());
     
                                //alert(ajax.getResponseHeader("content-type"));
                                // verifica della risposta da parte del server
                                if(statusText[ajax.status] === "OK"){
                                    // operazione avvenuta con successo
                                    var tmp = ajax.responseText;
                                    //campi = encodeURIComponent(tmp);
                                    //alert(campi);
                                    var campi = tmp.split("|");
                                    
                                    baseForm.cognomeG.value = campi[0];
                                    //alert(campi[0]);
                                    //alert(campi[1]);
                                    baseForm.nomeG.value = campi[1];
                                    baseForm.codFiscale.value = campi[2];
                                    ....................
    la classe java:
    codice:
    //dopo aver preso i dati dal db e messo tutto nella String result
     byte[] bArray = result.getBytes();
     inputStream = new ByteArrayInputStream(bArray);
    tomcat 6.016
    netbeans 6.1

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    309
    ho fatto alcune prove e sembra che il problema può essere nell'oggetto inputStream.
    Mi viene da pensare che quindi può dipendere dal tomcat-jvm. In pratica se nella classe java sostituisco i caratteri accentati con entità html, nella jsp queste non vengono tradotte e ad esempio Á scrive & Aacute; (senza spazio) senza trasformarla. a questo punto se da javascript sostituisco la scritta con il carattere che mi serve funziona.
    Per quanto riguarda il tomcat ho letto qualcosina in giro e nel server.xml c'è la possibilità di cambiare il charset ma non ho avuto effetti. Usando netbeans ho modificato sia il server.xml del profilo utente che quello generale.
    tomcat 6.016
    netbeans 6.1

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.