我正在使用jQuery
AJAX将表单提交给支持的
Spring MVC控制器.我正在jsp上设置编码.在我的请求标题在Firebug我看到 –
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive 115 Connection keep-alive Content-Type application/x-www-form-urlencoded; charset=UTF-8 X-Requested-With XMLHttpRequest
然而,在我的Spring MVC控制器中,所有在西里尔文中输入的表单值都变成垃圾.而对于这一点,这种做法在Safari中可以正常工作,但不能在IE / FF / Chrome中运行.
有关如何设置正确的编码并防止垃圾字符提交的任何想法?
我找到了解决这个问题的办法.我已经将编码设置在每个jsp页面的顶部.然而,这不行.所以我在web.xml中添加了一个弹簧字符编码过滤器.这将确保请求中的编码正确.
<filter> <filter-name>encodingFilter</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-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>