Spring项目的编码问题主要涉及两个地方。
- 项目的编码过滤器
- 应用服务器的配置
项目的编码过滤器
SpringBoot已经内置编码过滤器。
其他Spring项目在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>
应用服务器的配置
以Tomcat为例,配置 conf/server.xml 中 Connector ,指定 URIEncoding:
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" >