JSP struts2 url傳參中文亂碼解決辦法
1.設置struts.xml
constant name="struts.i18n.encoding" value="UTF-8" />
或是設置struts.properties(我自己沒試過)
struts.i18n.encoding=UTF-8
2.在web.xml添加編碼過濾器
filter> filter-name>characterEncodingFilter/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> filter-name>characterEncodingFilter/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>
上面用的是spring自帶的,也可以自己寫,核心語句就是request.setCharacterEncoding(this.encoding);
3.設置tomcat的配置
1和2都只能設置post方式提交數據的編碼方式,如果url有中文的話就會有亂碼,解決辦法是在
tomcat的\conf\server文件的
Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
加入 URIEncoding="UTF-8"。如果你正在使用eclipse,記得重啟eclipse,把服務器的設置刪除,重新設置。我就是因為沒有這樣做搞得配置文件沒生效,調試了半天
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!