- 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;
- }
- }
- });
- }
- }
Kopijuoti kodą Aukščiau pateiktas kodas gali būti perduodamas kinų kalba paprastai FF / Chrome, tačiau IE yra problema, o informacijos išvestis fone yra iškraipyta.
Bandymas išspręsti problemą:
1. Set contentType: "text/plain; charset=utf-8", problema išlieka
2. Dar kartą patikrinau JSP puslapį, kuriame yra ajax kodas, kurie visi naudoja UTF-8, tačiau problema išlieka
3. Fone esančiame "Java" kode UTF-8, GBK ir GB2312 kodavimo konvertavimas yra priverstinis, o problema išlieka
Atlikus analizę nustatoma, kad tai gali būti susiję su turinio perdavimu naršyklėje ar "JQuery", tačiau šiuo metu to tiksliai nustatyti negalima.
Sprendimas:
Ankstesnė pastraipa: encodeURI($(dom).val(), "UTF-8"); koduoti naudojant encodeURI
Backend Java kodas:
URLDecoder.decode(inputStr, "UTF-8"): galinis kodas iššifruoja priekiniame segmente perduotą eilutę.
Suvestinė:
Galiausiai, eilutės informacija, perduota Ajax Post užklausa, gali būti rodoma normaliai, o kinų kalba gali būti rodoma normaliai.
|