如果我需要为部署在tomcat实例中的所有应用程序设置相同的编码,我可以编辑server.xml并添加如下所示的部分:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>有没有办法为某个应用程序指定编码?(可能在它的web.xml或其他地方)?
发布于 2012-01-18 19:27:32
据我所知,web.xml不允许你想要的东西,所以我建议使用以下方法。
HTTP设置为每页(例如,对于JSP <%@page pageEncoding="UTF-8" %>)
发布于 2012-01-18 19:41:39
如果你使用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 5+中指定useBodyEncodingForURI="true"才能使此筛选器生效:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true" />https://stackoverflow.com/questions/8909130
复制相似问题