Tomcat 编码问题解决

众所周知,Tomcat是一个基于HTTP协议的Java应用服务器(非Web服务器),也是一个Servlet容器.

一般我们会基于使用HTTP协议的Post或Get方法来传递内容或参数,中间会涉及一些编解码操作,若不了解编解码过程可能会遇到乱码或解析问题.

接下来,我们来了解下调用方与tomcat交互时编解码过程:

  1. 调用方使用utf-8进行encode(可在代码层实现)
  2. tomcat使用iso8859-1进行decode(server.xml对应的Connector设置)
  3. servlet使用iso8859-1进行encode(webapp中web.xml中设置,注意:该方式仅tomcat 7.x 版本支持)
  4. 服务方使用utf-8进行decode(可在代码层实现)

提醒:不知道大家可注意到了,调用方与服务方最终使用的编码格式必须统一;另外,tomcat与servlet的编码格式也必须统一.当然我们因业务需要也可以使用其他编码格式(如:GBK),但建议为了跨平台和字符集兼容,建议统一使用UTF-8

那么当我们真的出现了编码问题如何解决呢?

1.修改JSP页面的Content-Type类型为UTF-8(<%@page    cotnentType="mime/type; charset=UTF-8" %>)

2.在server.xml中<Connector>设置URIEncoding="UTF-8"或useBodyEncodingForURI="true"

3.在web.xml字符编码过滤器中设置编码为UTF-8

4.把所有servlets的Content-Type设置为UTF-8

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-14 20:02:10

Tomcat 编码问题解决的相关文章

微信支付回调签名失败Tomcat编码问题解决

在IDEA环境内嵌Tomcat8正常,在Windows部署的Tomcat8不正常,返回签名错误,原因是tomcat默认的编码使用ISO-8859-1的编码解析器,只要指定HttpServletRequest的读取编码即可解决乱码问题 ServletInputStream inStream = request.getInputStream(); String resp = getStrFromInsByCode(inStream, "utf-8"); /** * * @param is

Tomcat编码问题

在TOMCAT中的server.xml中的 <Connector中添加两个设置useBodyEncodingForURI="true" //设置POST和GET使用相同编码URIEncoding="UTF-8" //对URI使用utf-8编码处理 ? <Connector useBodyEncodingForURI="true" URIEncoding="UTF-8"connectionTimeout="

设置Tomcat编码

2013-01-29 16:04:38|  分类: 默认分类|举报|字号 订阅 Tomcat的默认编码是ISO-8859-1,如果有是get请求时,会出现乱码,这种情况可以修改Tomcat的编码解决,当然也可以写个过滤器来解决. 在tomcat的conf目录下,编辑server.xml配置文件,找到下面的代码, 加上URIEncoding="UTF-8". 修改好如下: 设置Tomcat编码

Apache以及PHP的默认编码问题解决(详解)

如果你在网上搜索 “apache配置”,搜到的页面大多都会建议你在httpd.conf中加上这么一句:AddDefaultCharset GB2312.对于新手而且是只用GB2312编码的开发人来说,这么做是ok的.但是如果要想使用UTF-8字符集的话,比如 在test.php文件中需要有 meta http-equiv="Content-Type" content="text/html; charset=UTF-8" 这段代码.这时你再打开浏览器访问test.ph

修改tomcat编码

在TOMCAT中的server.xml中的 <Connector中添加 URIEncoding="UTF-8" //对URI使用utf-8编码处理 <Connector URIEncoding="UTF-8" connectionTimeout="20000" maxThreads="150" port="8888" protocol="HTTP/1.1" redirectP

设置Tomcat编码(UTF-8)

Tomcat的默认编码是ISO-8859-1,如果有是get请求时,会出现乱码,这种情况可以修改Tomcat的编码解决. 在tomcat的conf目录下,编辑server.xml配置文件,在Connector节点,加上URIEncoding="UTF-8"

修改Tomcat编码的两种方式

(1)利用request.setCharacterEncoding("UTF-8");来设置Tomcat接收请求的编码格式,只对POST方式提交的数据有效,对GET方式提交的数据无效! (2)要设置GET的编码,可以修改server.xml文件中,相应的端口的Connector的属性:URIEncoding="UTF-8",这样,GET方式提交的数据才会被正确解码. <Connector port="8080" protocol="

修改Tomcat编码方式

修改tomcat下的conf/server.xml文件,找到如下代码: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 这段代码规定了Tomcat监听HTTP请求的端口号等信息.可以在这里添加一个属性:URIEncoding,将该属性值设置为UTF-8,即可让Tomcat(默认IS

tomcat乱码问题解决

1.修改 apache-tomcat-7.0.94\bin\catalina.bat 将set "JAVA_OPTS修改为:set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Dfile.encoding=UTF-8" 2.修改tomcat的日志编码 修改apache-tomcat-7.0.94\conf\logging.properties中‘java.util.logging.ConsoleHandler.encoding’为 jav