SpringMVC学习系列-后记 解决GET请求时中文乱码的问题


SpringMVC学习系列-后记 解决GET请求时中文乱码的问题

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

复制代码

<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>

复制代码

但这个设置是针对POST请求的,tomacat对GET和POST请求处理方式是不一样的,要处理针对GET请求的编码问题,则须要改tomcat的server.xml配置文件,以下:ajax

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

改成:spring

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>

最关键的点在这里:若是你是更改的tomcat安装目录的server.xml配置 文件,那么在用eclipse运行项目时会发现配置没起做用,实际上是由于eclipse在运行项目时是用的eclipse中配置的tomcat,那么问题 就好解决了,打开eclipse中的tomcat配置文件,改成以下便可:tomcat

 

:配置useBodyEncodingForURI="true"后,能够解决普通get请求的中文乱码问题,可是对于经过ajax发起的get请求中文依然会乱码,请把useBodyEncodingForURI="true"改成URIEncoding="UTF-8"便可。app

相关文章
相关标签/搜索