我正在构建一个使用spring mvc和jpa的应用程序,在eclipse ide中使用jboss7和mysql。我有一个奇怪的问题。我的所有jsp页面都使用charset编码:utf8,我认为它正常工作。但每当我尝试将数据从jsp发布到控制器时,我的数据就会被编码为不同的编码风格。我试图使用firebug查找标题,并惊讶地看到post请求有一个带内容类型的标题:“text / plain; charset = ISO-8859-1”。我已经在我的web.xml中为UTF-8配置了SetCharacterEncodingFilter(它是第一个过滤器)。但问题仍然存在。
我还将“org.apache.catalina.connector.URI_ENCODING”设置为value =“UTF-8”。但是徒劳无功。
此外,我添加了bean messageSource
,其属性defaultEncoding设置为“UTF-8”。
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource" >
问题仍然存在。请帮忙
提前致谢。
答案 0 :(得分:1)
请求标头由浏览器设置,因此您的应用程序无法控制它。通常,在HTML表单中,您可以使用accept-charset=utf-8
属性来指定编码,但这不一定有效。请参阅此问题Setting the character encoding in form submit for Internet Explorer。
答案 1 :(得分:0)
您需要设置JVM的编码,如下所示:
-Dfile.encoding=UTF-8 -Dfile.io.encoding=UTF-8 -DjavaEncoding=UTF-8
因此,根本不会有任何疑问。