您需要在中配置字符编码过滤器
web.xml:
<filter> <filter-name>charsetEncodingFilter</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></filter><filter-mapping> <filter-name>charsetEncodingFilter</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
如果未指定请求编码,则Servlet容器会将POST请求数据视为ISO-8859-1,而浏览器以页面编码(在您的情况下为UTF-8)提交表单,并且通常不指定编码,因此您需要过滤器指定正确的请求编码。
编辑:
正如BalusC正确提到的那样,它不涵盖GET请求的编码问题。要在Tomcat上修复该问题,您需要
URIEncoding="UTF-8"在
<Connector>中进行设置
conf/server.xml。



