1. 程式人生 > >Java專案徹底解決中文亂碼問題

Java專案徹底解決中文亂碼問題

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,修改程式碼

  1. <Connectorport="8080"protocol="HTTP/1.1"
  2.                connectionTimeout="20000"
  3.                redirectPort="8443"/>
修改之後,程式碼如下:
  1. <Connectorport="8080"protocol="HTTP/1.1"
  2.                connectionTimeout="20000"
  3.                redirectPort="8443"
  4.                URIEncoding
    ="UTF-8"
  5.                useBodyEncodingForURI="true"
  6.                />

這樣tomcat對於get請求預設編碼就變成了Utf-8了.

總結:這樣就能徹底解決專案中的中文亂碼問題了,對於Get請求的中文引數,不能在後臺進行資料還原,資料會亂碼