2011-12-05 29 views
6

Ajax isteği için YUI kullanan basit asp.net web uygulamasına sahibim. Uygulama metin kutusundan metni okuyun ve sunucuya AJAX isteği gönderin. KodAJAX isteği ile ® karakter gönderme sorunları yaşanıyor

<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> 

aşağıdaki

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 
     }); 
    }); 
}); 

Ne ben uygulamasında yapın kullanıcı tarafından girilen karakteri kabul db kaydetmek ve Ajax yanıta yazmak olduğunu Ajax isteği başlatır istemci komut dosyası olduğunu aşağıdadır . Sistem Unicode'u (veritabanı) desteklemiyor.

Artık benim sorunum, metin kutusuna "Registered" ® (0174) karakteri girildiğinde ve sunucuya gönderildiğinde, kullanıcının metin kutusuna girmediği # 65533 alıyorum. Ayrıca ® bu karakter Unicode karakteri değil, neden bu davranış.

+0

Hangi karakter kodlamasını kullanıyorsunuz? Unicode kodlamalarından herhangi birinin olmadığını belirttiniz, ancak hangi * kullanmanız gerektiğini belirtmediniz. – Piskvor

+0

Gönderen Ajax isteğinin içerik kodlayan VEYA içerik türünü kastediyor musunuz? –

+1

Muhtemelen birçok farklı kodlama (ayar) vardır ve bunların hepsi önemli olabilir, örn. DB kodlaması, sunucu tarafında çalışırken kodlama, istemciye iletilen sayfanın kodlanması. Btw., Senin sorunun aslında "Kayıtlı" karakteri ile sınırlı mı yoksa bu problemi gösteren başka karakterler var mı? – codeling

cevap

1

Ayarladığınız etiketlerden çıkarsanız, arka uç asp.net'de mi programlanır? Orada çalıştığınız kodlamayı kontrol edin (bkz. Ör. here). Sorununuz, istemciye sunduğunuzdan farklı olacak gibi geliyor (sunucu ayarlarına bakın).

+0

Bunun için teşekkürler web.config içinde globalizatioin eklemeyi denedim ama benim için işe yaramadı. Bu konuda daha fazla girdi var mı? –

+0

Doğru şekilde anladım, AJAX isteklerini yanıtlayan sunucu bölümü metni alır, veritabanına koyar ve geri gönderir; gönderilen geri değer yanlış geliyor; ama sunucudaki değerleri kontrol ettiniz mi, hala doğru mu? – codeling

+0

Onlar da yanlış değil ... hata ayıklama ve içerik türü uygulama/x-www-form-urlencoded olarak geliyorken sunucudaki değerleri kontrol ettim; UTF-8; –

2

Yapılandırma sorunlarını unutun, sorun muhtemelen editörünüzle ve dosyalarınızı kaydetmek için kullandığı dosyayı kodla ilgili olabilir. Karakter kodlamasını ayarlamak yeterli değildir, bazen önemli değil, karakterleri karakter kümesini destekleyen bir kodlamada saklamanız gerekir, örneğin: BOM içermeyen utf-8, bunu görebileceğiniz bir editör edinin bilgi. Tabii ki, web sunucunuzda, veri tabanı sunucusunda (birini kullandığınızı varsayarak) ve istemci arasında çok şey olabilir. Whe web sunucusundaki varsayılan karakteri, veritabanını ve düzenleyicinizi kodlayan dosyayı dosyaları kaydetmek için kullanın.