- 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;
- }
- }
- });
- }
- }
Kopioi koodi Yllä oleva koodi voidaan välittää kiinaksi normaalisti FF/Chromessa, mutta IE:ssä on ongelma, ja taustalla tuleva tieto on sekava.
Ongelmayritys:
1. Aseta contentType: "teksti/selvä; charset=utf-8", ongelma jatkuu
2. Tarkistin uudelleen JSP-sivun, jossa ajax-koodi sijaitsee, ja kaikki käyttävät UTF-8:aa, mutta ongelma jatkuu
3. Taustalla olevassa Java-koodissa UTF-8:n, GBK:n ja GB2312:n koodausmuunnos pakotetaan ja ongelma jatkuu
Analyysin jälkeen todetaan, että se saattaa liittyä selaimen tai JQueryn sisällön siirtoon, mutta sitä ei voida tällä hetkellä tarkasti määrittää.
Ratkaisu:
Edellinen kappale: encodeURI($(dom).val(), "UTF-8"); encode encodeURI:llä
Backendin Java-koodi:
URLDecoder.decode(inputStr, "UTF-8"): Taustakoodi purkaa etusegmentissä välitetyn merkkijonon.
Yhteenveto:
Lopuksi Ajax Postin pyynnön välittämä merkkijonotieto voidaan näyttää normaalisti, ja kiinalainen voidaan näyttää normaalisti.
|