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的配置檔案入手解決。
以上,愚見。