- 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;
- }
- }
- });
- }
- }
Kopeeri kood Ülaltoodud koodi saab tavaliselt hiina keeles edastada FF/Chrome'is, kuid IE-s on probleem ning taustal edastatav info on segane.
Probleemi katse:
1. Sea contentType: "tekst/plain; charset=utf-8", probleem püsib
2. Kontrollisin uuesti JSP lehte, kus asub ajax-kood, kõik kasutavad UTF-8, kuid probleem püsib
3. Taustal olevas Java koodis sunnitakse UTF-8, GBK ja GB2312 kodeerimise teisendamist ning probleem püsib
Pärast analüüsi selgub, et see võib olla seotud sisu edastamisega brauseris või JQuerys, kuid praegu ei saa seda täpselt kindlaks teha.
Lahendus:
Eelmine lõik: encodeURI($(dom).val(), "UTF-8"); encode encodeURI-ga
Backend Java kood:
URLDecoder.decode(inputStr, "UTF-8"): Taustakood dekodeerib esisegmendis edastatud stringi.
Kokkuvõte:
Lõpuks saab Ajax Posti päringu kaudu edastatud stringiinfot kuvada normaalselt ja hiina keelt normaalselt.
|