- 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;
- }
- }
- });
- }
- }
Kopier kode Ovenstående kode kan normalt sendes på kinesisk i FF/Chrome, men i IE er der et problem, og informationen i baggrunden er forvansket.
Problemforsøg:
1. Sæt indholdType: "tekst/klar; charset=utf-8", problemet fortsætter
2. Jeg tjekkede JSP-siden, hvor ajax-koden er placeret, alle bruger UTF-8, men problemet fortsætter
3. I Java-koden i baggrunden tvinges kodningskonverteringen af UTF-8, GBK og GB2312, og problemet fortsætter
Efter analyse fastslås det, at det kan være relateret til overførsel af indhold i browseren eller JQuery, men det kan ikke fastslås nøjagtigt på nuværende tidspunkt.
Løsning:
Forrige afsnit: encodeURI($(dom).val(), "UTF-8"); encode med encodeURI
Backend Java-kode:
URLDecoder.decode(inputStr, "UTF-8"): Backend-koden afkoder strengen, der sendes i frontsegmentet.
Resumé:
Endelig kan strenginformationen, der sendes af Ajax Post-anmodningen, vises normalt, og den kinesiske kan vises normalt.
|