Los problemas chinos de AJAX se dividen en dos categorías:
1) Los parámetros en la ruta de envío están en chino y los valores de los parámetros recibidos en la sección del servidor están confusos.
Por ejemplo:
var url="a.jsp?name=Xiao Li";
xmlHTTP.open ("publicación",url,verdadero);
Solución:
Utilice los métodos escape() o encodeURI() proporcionados por javascript, por ejemplo:
Cliente:
var url="a.jsp?name=Xiao Li";
url=codificarURI(url);
url=encodeURI(url); //Dos veces, muy crítico [No sé exactamente por qué]
/************************************************/
Algunas personas también escriben var url="a.jsp?name=escape("Xiao Li"");
La función es similar al método encodeURI.
/************************************************/
xmlHTTP.setrequestheader("control de caché","sin caché");
xmlHTTP.setrequestheader("Tipo de contenido","aplicación/x-www-form-urlencoded");
xmlHTTP.setrequestheader("contentType","text/html;charset=uft-8")//Especifique el formato de codificación de los datos enviados
xmlHTTP.open ("publicación",url,verdadero);
Lado del servidor:
Nombre de cadena = request.getParameter("nombre");
nombre = java.net.URLDecoder.decode("nombre", "UTF-8");
2) El valor de texto de respuesta o XML de respuesta contiene caracteres chinos y está confuso. Motivo: AJAX decodifica el valor de texto de respuesta o XML de respuesta según el formato UTF-8 cuando los datos enviados por el segmento del servidor no están en formato UTF-8. , , entonces el valor recibido por ResponseText o ResponseXML puede ser confuso.
Solución: especifique el formato de envío de datos en el servidor:
En el archivo jsp:
respuesta.setContentType("text/text;charset=UTF-8");//Lo que se devuelve es un archivo de texto txt o
respuesta.setContentType("text/xml;charset=UTF-8");//archivo xml devuelto
Resumen: 1) El formato de los datos enviados por ajax es utf-8 de forma predeterminada, utilizando el método escape() o encodeURI() proporcionado por javascript. Al recibirlos en el lado del servidor, utilice java.net.URLDecoder.decode("", Método "UTF -8") para decodificar.
2) La codificación de caracteres predeterminada de los datos devueltos por xtmlhttp es utf-8, por lo que cuando el servidor quiere enviar datos al cliente, también debe usar la codificación utf-8. Si el método anterior aún no puede resolver el problema confuso, entonces. Puede intentar convertir archivos jsp, htm y java que se guardan en formato de codificación UTF-8.
En resumen: simplemente use la codificación UTF-8 para la interacción de datos tanto frontal como posterior.
Este artículo proviene del blog de CSDN. Indique la fuente al reimprimir: http://blog.csdn.net/jiaoxiaguoke/archive/2009/12/31/5110991.aspx .