我使用jqueryajax将表单提交给后台的springmvc控制器。我正在jsp上设置编码。在Firebug的请求头中,我看到了-
接受字符集ISO-8859-1,utf-8;q=0.7,*;q=0.7
活命
连接保持活动状态
内容类型应用程序/x-www-form-urlencoded;字符集=UTF-8
X-request-With-XMLHttpRequest
然而,在我的SpringMVC控制器中,在西里尔文中输入的所有表单值都变成了垃圾。一个转折点是,这在Safari中很好用,但在IE/FF/Chrome中却不行
关于如何设置正确的编码并防止提交垃圾字符,有什么想法吗
我找到了这个问题的解决办法。我已经在每个jsp页面的顶部设置了编码。但它没有起作用。因此,我在web.xml中添加了一个spring字符编码过滤器。这将确保请求中的编码正确
<;过滤器>;
<;过滤器名称>;编码过滤器</过滤器名称>;
<;过滤等级>;org.springframework.web.filter.CharacterEncodingFilter</过滤等级>;
<;初始参数>;
<;参数名称>;编码</参数名称>;
<;参数值>;UTF-8</参数值>;
</初始参数>;
<;初始参数>;
<;参数名称>;强制编码</参数名称>;
<;参数值>;正确</参数值>;
</初始参数>;
</过滤器>;
<;过滤器映射>;
<;过滤器名称>;编码过滤器</过滤器名称>;
<;url模式>/*</url模式>;
</过滤器映射>;