如何利用URIEncoding和useBodyEncodingForURI解决tomcat中文乱码问题

原创 2015年11月19日 15:30:03

参考:http://blog.itpub.net/29254281/viewspace-1073278/

http://cmsblogs.com/?p=1510



乱码问题汇总:


1> 在tomcat的server.xml设置<Connector URIEncoding="utf-8"  />, 使用utf8对URI中出现的中文进行decode,例如http://localhost:8080/test/测试.do -> http://localhost:8080/test/%E6%B5%8B%E8%AF%95.do, 这样能够找到对应的controller方法。若不设置使用默认值ISO-8859-1


2> 在tomcat的server.xml设置<Connector useBodyEncodingForURI="true"  /> 能够解决query String的乱码问题。
useBodyEncodingForURI=true -> 使用http header中指定charset进行decode(例如:Content-Type: charset=UTF-8),若未指定,则使用默认值ISO-8859-1
useBodyEncodingForURI=false -> 使用默认值ISO-8859-1


3> 若只配置了URIEncoding="utf-8",则query string的编码也会被设置为utf-8,且http header中设置的charset不会重写这个编码。若同时设置了两项,则对于query string的编码,则与设置useBodyEncodingForURI=true的作用是一样的(会被http header中的charset重写)


4> 建议使用utf-8为主,可以在web.xml 中配置encoding filter来指定默认的编码为utf-8,避免乱码问题的出现。
 <filter>
    <filter-name>encoding_filter</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>encoding_filter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

URIEncoding和useBodyEncodingForURI区别

转载:http://blog.itpub.net/29254281/viewspace-1073278/ Tomcat解决请求乱码可以使用URIEncoding和useBodyEncodingFo...
  • hqfhello
  • hqfhello
  • 2016年05月25日 11:17
  • 2967

写了一个查询数据库的程序,不熟的Tomcat6。查询条件为英文时运行正常,为中文时出现乱码。后在tomcap的server.xml中加入useBodyEncodingForURI="true解决了问题

Tomcat的乱码 首先,说说JSP/Servlet中的几个编码的作用。  在JSP/Servlet中主要有以下几个地方可以设置编码,pageEncoding="UTF-8"、cont...
  • seng3018
  • seng3018
  • 2011年09月14日 09:32
  • 5637

URIEncoding与useBodyEncodingForURI 在tomcat中文乱码处理上的区别

文章转载自:http://blog.csdn.net/superch0054/article/details/9325793大家知道tomcat5.0开始,对网页的中文字符的post或者get,经常会...
  • cheng157507947
  • cheng157507947
  • 2015年04月21日 16:41
  • 434

Tomcat中文乱码处理之URIEncoding、useBodyEncodingForURI及CharacterEncodingFilter

大家知道tomcat5.0开始,对网页的中文字符的post或者get,经常会出现乱码现象。        具体是因为Tomcat默认是按ISO-8859-1进行URL解码,ISO-8859-1并未包括...
  • zmx729618
  • zmx729618
  • 2016年06月08日 16:15
  • 1286

URIEncoding与useBodyEncodingForURI 在tomcat中文乱码处理上的区别及CharacterEncodingFilter(备忘)

大家知道tomcat5.0开始,对网页的中文字符的post或者get,经常会出现乱码现象。 具体是因为Tomcat默认是按ISO-8859-1进行URL解码,ISO-8859-1并未包括中文字符,这...
  • taijianyu
  • taijianyu
  • 2015年02月15日 00:35
  • 7091

tomcat 字符集设置 url中文乱码解决大全

使用 tomcat 时,相信大家都回遇到中文乱码的问题,具体表现为通过表单取得的中文数据为乱码。 一、初级解决方法 通过一番检索后,许多人采用了如下办法,首先对取得字符串按照 iso8859-1 进行...
  • ocean20
  • ocean20
  • 2010年09月19日 12:53
  • 14292

URIEncoding与useBodyEncodingForURI 在tomcat中文乱码处理上的区别及CharacterEncodingFilter(备忘)

大家知道tomcat5.0开始,对网页的中文字符的post或者get,经常会出现乱码现象。 具体是因为Tomcat默认是按ISO-8859-1进行URL解码,ISO-8859-1并未包括中文字符,这...
  • z69183787
  • z69183787
  • 2016年02月22日 19:33
  • 820

URIEncoding和useBodyEncodingForURI详解

转自:http://blog.itpub.net/29254281/viewspace-1073278/ Tomcat解决请求乱码可以使用URIEncoding和useBodyEncodin...
  • a405578928
  • a405578928
  • 2017年03月23日 17:25
  • 102

关于配置Tomcat的URIEncoding

遇到的问题:      程序需要发送http GET请求到服务器,请求的参数中包含了中文字符。程序中参数为UTF-8格式,且经过了UTF-8 URL编码再发送。使用的tomcat服务器,但服务器端后...
  • vicky_fish
  • vicky_fish
  • 2012年12月05日 16:36
  • 18339

URIEncoding和UseBodyEncodingForURI的解释

http://tomcat.apache.org/tomcat-7.0-doc/config/http.html 查阅官方文档,有如下表 URIEncoding This specifies...
  • qq_1017097573
  • qq_1017097573
  • 2017年03月15日 19:44
  • 533
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何利用URIEncoding和useBodyEncodingForURI解决tomcat中文乱码问题
举报原因:
原因补充:

(最多只允许输入30个字)