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

相關文章
相關標籤/搜索