关于Tomcat的URIEncoding以及GET乱码

最近在维护着Linux上的服务器,当然,开发和前期测试是在windows上执行的。

在做意见反馈的时候,出现了windows上正常,Linux下却是乱码的问题。

先排查了web服务器与MySQL的连接,确认问题处在前端页面和web之间的乱码交互。

确定问题应该处在Tomcat的配置上,于是翻开两个conf/server.xml 对比,发现:

<!-- windows  -->  
Service name="Catalina">  
<Connector port="8080" protocol="HTTP/1.1"   
           connectionTimeout="20000"   
           redirectPort="8443" URIEncoding="UTF-8" />  

<Connector port="8099" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />  

而Linux 的配置缺少了URIEncoding的配置项,那么默认应该是”ISO8859-1”,所以如果没有配置,则需要转码一次。

<!-- Linux 上Tomcat-->  
<Service name="Catalina">  
  <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"  maxThreads="250" minSpareThreads="20"/>  
  <Connector port="80" protocol="HTTP/1.1"  
             connectionTimeout="20000"  redirectPort="8443"  compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla,traviata"  
ompressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json,application/javascript,application/x-javascript"  
        />  
  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" executor="tomcatThreadPool"/> 

同理,如果在Linux上的Tomcat 加上URIEncoding=”UTF-8” 就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值