2011-12-05 7 views
6

Ho una semplice applicazione web asp.net che utilizza YUI per la richiesta Ajax. L'applicazione legge il testo dalla casella di testo e invia la richiesta AJAX al server. Di seguito è riportato il codiceProblemi durante l'invio di un carattere tramite richiesta AJAX

<body> 
    <form id="form1" runat="server"> 
    <div> 
     <input id="txt" name="txt" type="text" value="[Enter some value]" /> 
     <input id="btn" type="button" value="button" /> 
    </div> 
    <div id="out"></div> 
    </form> 
</body> 

che segue è lo script client che inizializza la richiesta Ajax

YAHOO.util.Event.onDOMReady(function() { 
    YAHOO.util.Event.addListener("btn", "click", function(evt) { 
     var url = "Server.aspx?type=test&txt=" + document.getElementById("txt").value; 
     var btn = document.getElementById("out"); 
     var cObj = YAHOO.util.Connect.asyncRequest('GET', url, { 
      success: function(o) { 
       btn.innerHTML += "<div>" + o.responseText + " = " + o.responseText.charCodeAt(0) + "</div>"; 
      }, 
      failure: function(o) { 
       confirm("Its failure"); 
      }, 
      cache: false 
     }); 
    }); 
}); 

quello che faccio in applicazione è accettare carattere immesso dall'utente, salvarlo in db e scrivere alla risposta Ajax . Il sistema non supporta Unicode (database).

Ora il mio problema è che quando il carattere "Registrato" ® (0174) viene immesso nella casella di testo e inviato al server, ottengo # 65533 che non è quello che l'utente ha inserito nella casella di testo. Inoltre, questo carattere non è un carattere Unicode, quindi perché questo comportamento.

+0

Quale codifica di carattere usi? Hai notato che non è una delle codifiche Unicode, ma non hai specificato quale usare * do *. – Piskvor

+0

Si intende la codifica del contenuto OR del tipo di contenuto della richiesta Ajax che viene inviata? –

+1

Ci sono probabilmente molte codifiche (impostazioni) diverse coinvolte e tutte potrebbero avere importanza, ad es. Codifica DB, codifica della pagina consegnata al client, codifica quando si lavora sul lato server. Btw., Il tuo problema è in realtà limitato al solo carattere "Registrato" o ci sono altri personaggi che mostrano questo problema? – codeling

risposta

1

Deducing dai tag impostati, il back-end è programmato in asp.net? Verifica con quale codifica stai lavorando (vedere ad esempio here). Il tuo problema sembra molto diverso da quello che offri al client (vedi impostazioni del server).

+0

Grazie per questo ho provato ad aggiungere globalizatioin in web.config ma non ha funzionato per me. Altri input su questo? –

+0

Se ho capito bene, la parte server che risponde alle richieste AJAX riceve il testo, lo inserisce nel database e lo rimanda; il valore inviato non arriva correttamente; ma hai controllato i valori sul server, sono ancora corretti? – codeling

+0

Anche se non sono corretti ... ho controllato i valori sul server mentre il debugging e il tipo di contenuto è arrivato come application/x-www-form-urlencoded; utf-8; –

2

Dimentica i problemi di configurazione, il tuo problema è probabilmente correlato al tuo editor e alla codifica del file che sta utilizzando per salvare i tuoi file. Non è sufficiente impostare la codifica dei caratteri, a volte non importa nemmeno, devi salvare i file stessi in una codifica che supporta il set di caratteri, ad esempio: utf-8 senza BOM, ottieni un editor in cui puoi vedere questo informazione. Naturalmente ci potrebbe essere molto successo tra il tuo server web, il server di base dati (supponendo che ne stai usando uno) e il client. Controlla il carattere predefinito nel whe web server, il database e la codifica del file che il tuo editor sta usando per salvare i file.

Problemi correlati