Spring MVC 彻底解决中文乱码问题(亲测有效)
阅读原文时间:2021年04月21日阅读:1

中文乱码是项目中常见的问题,也是必须要解决的问题。项目出现问题,看了不少的攻略,但是有的时候仍然不行,我的情况是使用get 请求,将参数传递到Controller 中。

下面将我找到的 解决办法。

(1) 在JSP 文件

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  

(2)在HTML中 

这个必须要加的

在上面中,使用get请求,可以对URL 进行编码

var url = encodeURI(url1);
document.location.href = "url"

(3) 在Web 项目中

1) Eclipse 中右键项目 Properties 中,设置UTF-8 

2)设置web.xml 

<filter>  
        <filter-name>characterEncodingFilter</filter-name>  
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
        <init-param>  
            <param-name>forceEncoding</param-name>  
            <param-value>true</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>characterEncodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>  

3) 在Controller 中设置

URLDecoder.decode(request.getParameter("test"),"utf-8");

4) 服务器配置(server.xml)

<Connector port="8080"  protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />  

5)数据库 设置

数据库 中设置UTF-8 ,数据库连接:

jdbc.url=jdbc:mysql://localhost:3306/homeeducation?useUnicode=true&characterEncoding=UTF-8

如果上面设置还是不行的话。那么就使用下面的终极办法,也是最方便的。

直接对接收到的参数进行数据转换

 new String(title.getBytes("ISO-8859-1"), "utf-8");