前臺傳中文到後臺Controller亂碼問題的解決

vipwhr發表於2016-10-22

JS傳中文引數到Controller的時候出現了亂碼。

檢視了web.xml中的CharacterEncodingFilter配置沒有問題。

而且在測試環境上跑的時候功能正常但是在開發環境卻有問題。嘗試了在程式碼中新增:

request.setCharacterEncoding(“xxxx”)之類的方法也不可行。

但是

new String(name.getBytes("ISO-8859-1"),"UTF-8");

可行。

查了一些資料後瞭解到Tomcat對於post和get的處理方式不同。

所以過濾器和request.setCharacterEncoding(“xxxx”)之類的方法對POST方法可行,但是對GET方法沒有作用。

所以想要解決這個問題要修改Tomcat的配置檔案server.xml

找到<Connector connectionTimeout=”20000″ port=”8080″> 這段資訊

然後再最後加上 URIEncoding=”UTF-8″ 即可。

總結:

post方法受過濾器以及setCharacterEncoding方法的限制,但是get方法不受,所以要修改get方式的亂碼問題,要從tomcat的配置檔案入手解決。

以上,愚見。

相關文章