- 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;
- }
- }
- });
- }
- }
Copiar código O código acima pode ser passado em chinês normalmente no FF/Chrome, mas no IE há um problema, e a informação em segundo plano fica confusa.
Tentativa problemática:
1. Set contentType: "texto/simples; charset=utf-8", o problema persiste
2. Reverifiquei a página do JSP onde o código ajax está localizado, todos usando UTF-8, mas o problema persiste
3. No código Java em segundo plano, a conversão de codificação de UTF-8, GBK e GB2312 é forçada, e o problema persiste
Após análise, determina-se que pode estar relacionado à transmissão de conteúdo no navegador ou JQuery, mas não pode ser determinado com precisão no momento.
Solução:
Parágrafo anterior: encodeURI($(dom).val(), "UTF-8"); codificar com encodeURI
Código Java backend:
URLDecoder.decode(inputStr, "UTF-8"): O código do backend decodifica a string passada no segmento frontal.
Resumo:
Finalmente, as informações de string passadas pela solicitação do Ajax Post podem ser exibidas normalmente, e as chinesas podem ser exibidas normalmente.
|