¿Cómo resolver el problema de los caracteres chinos confusos cuando la página jsp obtiene el valor pasado?
lt @ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"gt;
Esto unificará la codificación a utf-8.
Este enfoque no tiene ningún problema cuando se envía un formulario con caracteres chinos. Pero cuando se utiliza get para enviar un formulario, si el formulario contiene caracteres chinos, aparecerán caracteres confusos similares a "??". ¿Por qué es esto? La razón de este fenómeno es que los métodos de envío de los métodos de envío de obtención y publicación de Tomcat son diferentes. Desde Tomcat5.x, Tomcat usa diferentes métodos de procesamiento de codificación al enviar información a través de los métodos GET y POST. Para las solicitudes POST, Tomcat seguirá usando la codificación establecida por el método request.setCharacterEncoding para procesar. Se utiliza la codificación -8859 -1. Por otro lado, las solicitudes GET son diferentes: Tomcat no considerará la codificación establecida para las solicitudes GET utilizando el método request.setCharacterEncoding y siempre utilizará la codificación iso-8859-1.
La solución es la siguiente:
1. Configure el archivo de configuración server.xml de Tomcat. Esta línea en el archivo de configuración server.xml:
lt; URIEncoding= "GB2312"
port="8080" maxHttpHeaderSize=" 8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups ="false" redirigirPort="8443" AcceptCount=" 100"
ConnectionTimeout="20000" enableUploadTimeout="true" /gt;
Agregue lo siguiente: Usar nombre de cadena =new String(request.getParameter("name").getBytes("ISO-8859-1"), "GB2312"); Convertir codificación
Se recomienda utilizar el segundo método.
@RequestMapping(value="/edit", método={RequestMethod.POST}, produce = "application/json; charset=utf-8")//Este método de decodificación solo es válido para publicaciones enviadas
Nota:
Si su proyecto está controlado por maven, agregar URIEncoding="gb2312" en server.xml a veces no es muy útil. Agregar URIEncoding="gb2312" a xml a veces no es muy útil, porque maven tiene una función clara que reescribirá el archivo cada vez que se borre, por lo que agregar esta oración no es muy útil. Cada vez que utiliza maven clean para recargar el proyecto, debe modificar el archivo server.xml. Esto es un poco problemático.