如果我需要为tomcat实例中部署的所有应用程序设置相同的编码,我可以编辑server.xml
并添加如下部分:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
有没有办法为某个应用程序指定编码? (也许在web.xml
或其他地方)?
答案 0 :(得分:5)
如果您使用Spring MVC,您可以在web.xml中使用CharacterEncodingFilter,如下所示:
<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>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<servlet-name>my-spring-dispatcher-servlet</servlet-name>
</filter-mapping>
如果没有,您需要编写一个类似于:
的过滤器httpRequest.setCharacterEncoding("UTF-8")
修改强>
您确实需要在Tomcat中指定useBodyEncodingForURI="true"
5 + ,以使此过滤器生效:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true" />
答案 1 :(得分:2)
据我所知,web.xml不允许你想要的东西,所以我建议采用以下方法。
<%@page pageEncoding="UTF-8" %>
)