|
|
Yayınlandı 23.12.2015 17:50:05
|
|
|

- var regid = $('#oregion').combobox('getValue');
- //var sname = $('#sname').val();
- var sname = encodeURI($('#sname').val(),"UTF-8");
- if(regid!=""&®id!='undefined'){
- $.ajax({
- async: true,
- type : "POST",
- dataType : "json",
- url : "<%=request.getContextPath() %>/secretary/isHasUser.do?regid="+regid+"&sname="+sname,
- success : function(data) {
- if(data.mes!=""&&data.mes!=null){
- $.messager.alert('Warning',data.mes);
- return false;
- }
- }
- });
- }
- }
Kopya kodu Yukarıdaki kod FF/Chrome ile Çince'de normal şekilde iletilebilir, ancak IE'de bir sorun vardır ve arka planda çıkan bilgi çıkışı bozuktur.
Sorun girişimi:
1. SetContentType: "metin/sade; charset=utf-8" ile sorun devam eder.
2. Ajax kodunun bulunduğu JSP sayfasını tekrar kontrol ettim, hepsi UTF-8 kullanıyor ama sorun devam ediyor
3. Arka plandaki Java kodunda, UTF-8, GBK ve GB2312'nin kodlama dönüşümü zorunlu hale getirilir ve sorun devam eder
Analizden sonra, bunun tarayıcı veya JQuery içindeki içerik iletimiyle ilgili olabileceği belirlenmiştir, ancak şu anda doğru olarak belirlenemez.
Çözüm:
Önceki paragraf: encodeURI($(dom).val(), "UTF-8"); encodeURI ile encode
Backend Java kodu:
URLDecoder.decode(inputStr, "UTF-8"): Arka uç kodu, ön segmentte geçen diziyi çözer.
Özet:
Son olarak, Ajax Post isteği tarafından iletilen dizim bilgileri normal şekilde görüntülenebilir ve Çince bilgileri normal şekilde görüntülenebilir.
|
Önceki:js'de encodeURI ile encodeURIComponent metodlar arasındaki farkÖnümüzdeki:C#, telefon numaralarını, cep telefonu numaralarını, kimlik numaralarını doğrulamak için düzenli ifadeler kullanır
|