红联Linux门户
Linux帮助

关于Tomcat的URIEncoding以及GET乱码

发布时间:2016-07-27 11:39:28来源:linux网站作者:_kairui
最近在维护着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” 就好了。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/22738.html