- 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;
- }
- }
- });
- }
- }
Skopiuj kod Powyższy kod można przekazać po chińsku normalnie w FF/Chrome, ale w IE pojawia się problem i informacje wyświetlane w tle są zniekształcone.
Próba zadania:
1. Ustaw contentType: "tekst/plain; charset=utf-8", problem nadal występuje
2. Ponownie sprawdziłem stronę JSP, gdzie znajduje się kod ajax, wszystkie używają UTF-8, ale problem nadal występuje
3. W kodzie Java działającym w tle wymuszana jest konwersja kodowania UTF-8, GBK i GB2312 i problem pozostaje
Po analizie ustalono, że może to mieć związek z przesyłaniem treści w przeglądarce lub JQuery, jednak obecnie nie można tego dokładnie określić.
Rozwiązanie:
Poprzedni akapit: encodeURI($(dom).val(), "UTF-8"); encode with encodeURI
Kod zaplecza Java:
URLDecoder.decode(inputStr, "UTF-8"): Kod backendu dekoduje ciąg znaków przekazywanych w segmencie frontowym.
Streszczenie:
Wreszcie, informacje o ciągu ciągu przesłane przez żądanie Ajax Post mogą być wyświetlane normalnie, a chińskie można wyświetlić normalnie.
|