Os problemas chineses do AJAX são divididos em duas categorias:
1) Os parâmetros no caminho de envio estão em chinês e os valores dos parâmetros recebidos na seção do servidor estão distorcidos.
Por exemplo:
var url="a.jsp?name=Xiao Li";
xmlHTTP.open("postagem",url,true);
Solução:
Use os métodos escape() ou encodeURI() fornecidos por javascript, por exemplo:
Cliente:
var url="a.jsp?name=Xiao Li";
url=encodeURI(url);
url=encodeURI(url); //Duas vezes, muito crítico [não sei exatamente por quê]
/************************************************/
Algumas pessoas também escrevem var url="a.jsp?name=escape("Xiao Li")";
A função é semelhante ao método encodeURI.
/************************************************/
xmlHTTP.setrequestheader("controle de cache","sem cache");
xmlHTTP.setrequestheader("Tipo de conteúdo","aplicativo/x-www-form-urlencoded");
xmlHTTP.setrequestheader("contentType","text/html;charset=uft-8")//Especifique o formato de codificação dos dados enviados
xmlHTTP.open("postagem",url,true);
Lado do servidor:
String nome = request.getParameter("nome");
nome = java.net.URLDecoder.decode("nome", "UTF-8");
2) O valor responseText ou responseXML retornado contém caracteres chineses e está ilegível Motivo: AJAX decodifica o valor responseText ou responseXML de acordo com o formato UTF-8 ao recebê-lo. , , então o valor recebido por responseText ou responseXML pode estar ilegível.
Solução: Especifique o formato de envio de dados no servidor:
No arquivo jsp:
response.setContentType("text/text;charset=UTF-8");//O que é retornado é um arquivo de texto txt ou
response.setContentType("text/xml;charset=UTF-8");//arquivo xml retornado
Resumo: 1) O formato dos dados enviados por ajax é utf-8 por padrão, usando o método escape() ou encodeURI() fornecido por javascript Ao receber no lado do servidor, use java.net.URLDecoder.decode("", "UTF -8") para decodificar.
2) A codificação de caracteres padrão dos dados retornados por xmlhttp é utf-8, portanto, quando o servidor deseja enviar dados ao cliente, ele também deve usar a codificação utf-8. Se o método acima ainda não conseguir resolver o problema distorcido, então. você pode tentar converter arquivos jsp, htm e java salvos no formato de codificação UTF-8.
Resumindo: basta usar a codificação UTF-8 para interação de dados frontal e posterior.
Este artigo vem do blog CSDN. Indique a fonte ao reimprimir: http://blog.csdn.net/jiaoxiaguoke/archive/2009/12/31/5110991.aspx.