Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    ajax e caratteri accentati

    ciao a tutti, come si capisce dal titolo ho un problema con i caratteri accentati.
    dunque il mio problema è che con ajax (che ho iniziatoa studiare da poco) faccio una semplice richiesta di visualizzazione del contenuto di un file, anche di un semplice file di testo.
    il problema arriva quando in questo file ci sono dei caratteri accentati tipo: à,è, ecc.
    ho provato a cercare da tutte le parti ma sembra che questo problema lo abbiamo in troppo pochi.

    mi potreste aiutare per favore?

    grazie
    "... chchchch...
    attenzione è in funzione un dispositivo di segretreria telefonica,
    il signor POMATA è assente...
    dopo il segnale acustico avete 40 secondi per incidere un messaggio...
    beeep"

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non dovrebbe essere un problema di aiax ma di come viene interpretato il messaggio... che e' XML.

    Provo a spostare la discussione
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    il file che vado a caricare è un semplice file di testo e non un xml.
    ho provato anche con un filetto semplice semplice, ma niente....
    "... chchchch...
    attenzione è in funzione un dispositivo di segretreria telefonica,
    il signor POMATA è assente...
    dopo il segnale acustico avete 40 secondi per incidere un messaggio...
    beeep"

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non e' che il file letto influisca tanto... ma l'oggetto xmlHttp usato da aiax e' fatto per trattare xml, quindi presuppone che tutto cio' che manipola sia xml e cosi' lo interpreta.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    o servi con un altro character encoding oppure sostituisci i caratteri accentati con le entità

  6. #6
    in effetti se vadoa ad importare un xml il problema non si pone, ma ho visto nella guida presente in questo sito che posso importare anche semplice file di testo (responseText).

    per quanto riguarda la codifica dei caratteri ho provato in tutte le maniere ma non sono riuscito a sistemare il problema.

    in effetti ho fatto un giretto per i vari siti che spiegavano ajax in spagnolo, pensando che lo spagnolo è pieno di accenti, ma ho notato che il problema non se lo sono posto.
    questa è la funzione che ho trovato e con cui vado a caricare il file.

    codice:
    function load_content(nomeFile,w_div_to_write,wait_div) {
    
    	  // variabili di funzione
    	  var
    	    // assegnazione oggetto XMLHttpRequest
    	    ajax = assegnaXMLHttpRequest(),
    
    	    // assegnazione elemento del documento
    	    elemento = prendiElementoDaId(w_div_to_write),
    
    	    // risultato booleano di funzione
    	    usaLink = true;
    
    	  // se l'oggetto XMLHttpRequest non è nullo
    	  if(ajax) {
    
    	    // il link al file non deve essere usato
    	    usaLink = false;
    
    		//mi assicuro che il contenitore finale delle info non sia visibile
    		if (elemento.style.display = "block") elemento.style.display = "none";
    
    		nomeFile+="?"+parseInt(Math.random()*999999999999999);
    
    	    // impostazione richiesta asincrona in GET del file specificato
    	    ajax.open("get", nomeFile, true);
    
    	    // rimozione dell'header "connection" come "keep alive"
    	    ajax.setRequestHeader("connection", "close");
    
    	    // impostazione controllo e stato della richiesta
    	    ajax.onreadystatechange = function() {
    
    			//visualizzo il testo di attesa
    			mostraAttesa('caricamento','testo-temporaneo',5);
    
    			// verifica dello stato
    			if(ajax.readyState === readyState.COMPLETATO) {
    
    				// verifica della risposta da parte del server
    				if(statusText[ajax.status] === "OK"){
    
    					// il tipo di contenuti che mi ritornano
    					var cType = ajax.getResponseHeader("Content-Type");
    
    					// nel caso di xml
    					if (cType == "text/xml") {
    
    						// visualizzazione risultato parsing
    						response_msg = parsaXml(ajax.responseXML,"item");
    
    					} else if (cType == "text/plain") {
    						// nel caso di testo semplice
    
    						new_text = formatta_text(ajax.responseText);
    						//new_text = ajax.responseText.toString();
    
    						// operazione avvenuta con successo
    						response_msg = new_text;
    
    					} else {
    
    						// errore di caricamento
    						response_msg = "Impossibile stabilire la tipologia del contenuto.
    ";
    						response_msg += "Errore riscontrato: " + statusText[ajax.status];
    
    					}
    
    
    				}else {
    
    					// errore di caricamento
    					response_msg = "Impossibile effettuare l'operazione richiesta.
    ";
    					response_msg += "Errore riscontrato: " + statusText[ajax.status];
    
    				}
    
    				elemento.innerHTML = response_msg;
    				elemento.style.display = "block";
    
    				wait = prendiElementoDaId(wait_div);
    				wait.style.display = "none";
    			}
    	    }
    
    	    // invio richiesta
    	    ajax.send(null);
    	  }
    
    	  return usaLink;
    	}

    ho provato anche a sotituire i caratteri accentati con le entità:
    codice:
    function formatta_text(w_text){
    	//=======================================================
    
    //for (aa=0;aa<w_text.length-1;aa++) alert(escape(w_text.substr( aa,1)))
    
    		w_text = w_text.replace(/à/g, "aagrave;");
    		w_text = w_text.replace(/à/g,"aagrave;");
    		w_text = w_text.replace(/è/g, "eegrave;");
    		w_text = w_text.replace(/&egrave;/g,"eegrave;");
    		w_text = w_text.replace(/ì/g, "iigrave;");
    		w_text = w_text.replace(/&igrave;/g,"iigrave;");
    		w_text = w_text.replace(/ò/g, "oograve;");
    		w_text = w_text.replace(/&ograve;/g,"oograve;");
    		w_text = w_text.replace(/ù/g, "uugrave;");
    		w_text = w_text.replace(/&ugrave;/g,"uugrave;");
    
    		w_text = w_text.replace(/€/g,"eeuro;");
    		w_text = w_text.replace(/&euro;/g,"eeuro;");
    
    		w_text = w_text.replace(/£/g,"epound;");
    		w_text = w_text.replace(/&pound;/g,"epound;");
    
    		w_text = w_text.replace(/&amp;/g,"eecommerciale;");
    		w_text = w_text.replace(/&/g,"eecommerciale;");
    
    		w_text = w_text.replace(/\+/g,"simbolopiu;");
    //alert(w_text);
    		return w_text;
    
    	}
    ma niente di fatto...
    mi potreste dare qualche dritta?
    "... chchchch...
    attenzione è in funzione un dispositivo di segretreria telefonica,
    il signor POMATA è assente...
    dopo il segnale acustico avete 40 secondi per incidere un messaggio...
    beeep"

  7. #7
    anche io ho lo stesso problema ho provato a sostituire le lettere accentate con htmlentities() ma niente

  8. #8
    alla fine non è che qualcuno di voi è riuscito a trovare la soluzione

    (a me si presenta con file html, con charset impostato... purtroppo non ho la possibilità di sostituire con le entità)

  9. #9
    Originariamente inviato da marruz
    alla fine non è che qualcuno di voi è riuscito a trovare la soluzione

    (a me si presenta con file html, con charset impostato... purtroppo non ho la possibilità di sostituire con le entità)
    si ma il charset è corretto?

  10. #10
    Originariamente inviato da andrea.paiola
    si ma il charset è corretto?


    eh... bella domanda

    io ho provato con ISO-8859-1 e UTF-8

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 © 2026 vBulletin Solutions, Inc. All rights reserved.