Java專案徹底解決中文亂碼問題
阿新 • • 發佈:2019-02-08
spring自帶的編碼過濾器,在web.xml中配置,如下
spring org.springframework.web.filter下的CharacterEncodingFilter.java編碼過濾器原始碼:
發現其原始碼相當於servlet裡的
request.setCharacterEncoding("UTF-8")
respsose.setCharacterEncoding("UTF-8")
因此spring的自帶的過濾器只是針對於post請求的,get請求還是無法過濾為中文編碼.
解決get亂碼方法一般是資料還原:
但是這種方法必須每個get請求都需要取修改,不方便,因為tomcat預設編碼是'iso8859-1',因此我們可以修改tomcat的配置檔案更改tomcat的字元編碼修改
二. Tomcat字元編碼修改
發開conf下面的server.xml,修改程式碼
- <Connectorport="8080"protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443"/>
- <Connectorport="8080"protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443"
- URIEncoding
- useBodyEncodingForURI="true"
- />
這樣tomcat對於get請求預設編碼就變成了Utf-8了.
總結:這樣就能徹底解決專案中的中文亂碼問題了,對於Get請求的中文引數,不能在後臺進行資料還原,資料會亂碼