欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringMVC 解决GET请求时中文乱码的问题

程序员文章站 2022-07-15 11:45:44
...

之前项目中的web.xml中的编码设置:

<filter>
        <filter-name>CharacterEncoding</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>CharacterEncoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

上面是springmvc的字符串编码过滤器,但是对于get请求里面的中文然并卵。get请求默认编码格式是ISO8859-1,所以就是要将其转换成utf-8就ok了。你可以在请求处理的代码里面对中文字符串进行转码:

String param = new String(param.getBytes("ISO8859-1"), "UTF-8");

但是这种方式不够优雅,每个中文get请求你都要转码。更好的办法是在tomcat的服务配置文件server.xml里面加上配置URIEncoding="UTF-8":

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