java CharacterEncodingFilter在Spring MVC 3.0中不翻译unicode文本
我将CharacterEncodingFilter
设置为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>
在我的JSP中:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" isELIgnored="false" %>
这是:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
但是,例如,Tá
从JSP表单传回控制器,然后又传回JSP,变成:T%E
我在谷歌上搜索了几个小时,但找不到这个问题的答案。任何帮助都将不胜感激
# 1 楼答案
如果您使用的是Tomcat,那么您可能没有在
server.xml
中设置URIEncoding
。如果不将其设置为UTF-8,它将无法工作。一定要保留CharacterEncodingFilter
。然而,这里有一个简明的checklist要遵循。它肯定会指引你实现这一目标# 2 楼答案
如果
CharacterEncodingFilter
或您实现的过滤器位于web.xml
的顶部,请确保xml中CharacterEncodingFilter
的<filter-mapping>
元素出现在其他过滤器的<filter-mapping>
元素之前我花了很长时间才弄明白。可能对某人有用