首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为某个web应用程序配置URIEncoding?

如何为某个web应用程序配置URIEncoding?
EN

Stack Overflow用户
提问于 2012-01-18 19:15:01
回答 2查看 5.6K关注 0票数 5

如果我需要为部署在tomcat实例中的所有应用程序设置相同的编码,我可以编辑server.xml并添加如下所示的部分:

代码语言:javascript
复制
<Connector port="8081" protocol="HTTP/1.1" 
   connectionTimeout="20000" 
   redirectPort="8443" 
   URIEncoding="UTF-8"/>

有没有办法为某个应用程序指定编码?(可能在它的web.xml或其他地方)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-18 19:27:32

据我所知,web.xml不允许你想要的东西,所以我建议使用以下方法。

HTTP设置为每页(例如,对于JSP <%@page pageEncoding="UTF-8" %>)

  • Use
  1. 过滤器来设置编码。在这种情况下,您不必为每个页面单独设置它。
  2. 如果您正在使用web框架,请尝试使用它提供的工具。例如,对于Struts,您可以在模板定义中定义编码。
票数 2
EN

Stack Overflow用户

发布于 2012-01-18 19:41:39

如果你使用Spring MVC,你可以像这样在web.xml中使用CharacterEncodingFilter:

代码语言:javascript
复制
<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>

如果不是这样,您需要编写一个过滤器来执行以下操作:

代码语言:javascript
复制
httpRequest.setCharacterEncoding("UTF-8")

编辑:

您确实需要在Tomcat 5+中指定useBodyEncodingForURI="true"才能使此筛选器生效:

代码语言:javascript
复制
<Connector port="8081" protocol="HTTP/1.1" 
   connectionTimeout="20000" 
   redirectPort="8443" 
   useBodyEncodingForURI="true" />
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8909130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档