之前項(xiàng)目中的web.xml中的編碼設(shè)置:
<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>
但這個(gè)設(shè)置是針對(duì)POST請(qǐng)求的,tomacat對(duì)GET和POST請(qǐng)求處理方式是不同的,要處理針對(duì)GET請(qǐng)求的編碼問題,則需要改tomcat的server.xml配置文件,如下:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
改為:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>
最關(guān)鍵的點(diǎn)在這里:如果你是更改的tomcat安裝目錄的server.xml配置文件,那么在用eclipse運(yùn)行項(xiàng)目時(shí)會(huì)發(fā)現(xiàn)配置沒起作用,其實(shí)是因?yàn)閑clipse在運(yùn)行項(xiàng)目時(shí)是用的eclipse中配置的tomcat,那么問題就好解決了,打開eclipse中的tomcat配置文件,改為如下即可:
注:配置useBodyEncodingForURI="true"后,可以解決普通get請(qǐng)求的中文亂碼問題,但是對(duì)于通過Ajax發(fā)起的get請(qǐng)求中文依然會(huì)亂碼,請(qǐng)把useBodyEncodingForURI="true"改為URIEncoding="UTF-8"即可。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注