1. Cuando se usa AJAX para transferir datos desde la página de primer plano al controlador de fondo, aparece el código confuso chino (signo de interrogación?).
Busqué varias soluciones en línea antes, pero no funcionaron. Finalmente, descubrí que era un problema con el servidor Tomcat recibiendo datos.
Solución:
Método 1: transcode los parámetros cuando el controlador recibe los parámetros
@ResponseBody@requestMapping (value = "/getJSondatabyCityName", produce = "Application/JSON") Cadena pública getJSONByName (HttpServletRequest Soly, HttpServletResponse Respuesta,@requestparam string city_name) Lanza ServletException, ioexception { //Response.SetContentType("text/html ;charset=utf-8 "); //request.setcharacterEncoding("UTF-8") ;//solve el problema de problemas de posadas. city_name = new String (city_name.getBytes ("ISO-8859-1"), "UTF-8"); System.out.println ("City_Name:"+City_Name);}Método 2:
Configurar el archivo Service.xml en el directorio TomCat
tomcat7/conf/server.xml
Agregue el atributo de codificación de UriEncoding = "UTF-8" a esta línea de código
<Connector Port = "8080" Protocol = "Http /1.1" ConnecttimeOut = "20000" redirectPort = "8443" uriEncoding = "utf-8" />
Análisis de causa:
De hecho, la razón del problema confuso es que la configuración de Tomcat predeterminada, la solicitud recibida se transcodifica con ISO-8859-1, lo que conduce al problema confuso en chino. Mientras el código confuso se pueda trascodar correctamente con UTF-8, se puede resolver el problema confuso.
2. Transmisión de datos ordinarios, desde la página JSP hasta el controlador de fondo, solución al problema de confusión en chino
(1) Primero verifique si el formato de codificación de la página JSP es UTF-8
(2) establecer el filtrado chino
< <Init-param> <Initparam> <amamname> ForceEncoding </param-name> <amam-value> true </param-value> </ init-param> </siltre> <filter-mapping> <filter-name> caracteresCodingFilter </filtre-name> <url-pattern>/*</ url-pattern> </filter-papping>
(3) Establezca la conversión de datos de JSON en el archivo de configuración de SpringMVC
<MVC: Annotation-Driven> <MVC: Message-Converters Registro-Defaults = "True"> <!-Inicie la función de anotación MVC de primavera, complete la asignación de solicitudes y anotaciones Mapeo de mapeo POJO La asignación de solicitudes de anotación es ISO-88859-1 de forma predeterminada, evitando los códigos abarrojados. Esto se establece en UTF-8-> <Bean> <Property Name = "SupportedMediatyPes" Value = "Text/Html; Charset = UTF-8"/> </ Bean> <!-Configuración de formato de inicio de JSON, Convierta automáticamente el formato en formato JSON, no se requieren otras clases-> <Bean ID = "JacksonMessAsageConverter"> <Moder Name = "SupportedmedEntedMeDedMeDEDEDEDETEDETEDEDETYPET valor = "aplicación/json; charset = utf-8"/> </bean> </mvc: mensaje-Converters> </mvc: anotación-conducida>
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.