我有一些带有特殊字符的字段。当我通过将表单提交给Springs Controller来从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>
在Controller中编码,
request.setCharacterEncoding("UTF-8");
仍然无法解决问题。请帮助。
提前致谢。
注意:我在stackoverflow中检查了一些与此问题相关的问题,但仍无法找到它。 Character encoding JSP -displayed wrong in JSP but not in URL: "á » á é » é"
答案 0 :(得分:3)
此过滤器仅适用于POST请求。对于GET请求,您需要在servletcontainer级别配置它。例如,在Apache Tomcat的情况下,您需要编辑<Connector>
中的/conf/server.xml
条目以添加URIEncoding="UTF-8"
属性。
<Connector URIEncoding="UTF-8" ... />
手动调用request.setCharacterEncoding("UTF-8");
无效,因为过滤器已经这样做了。