关于Tomcat的URIEncoding以及GET乱码

来源:互联网 发布:淘宝店招尺寸950 编辑:程序博客网 时间:2024/05/17 04:04

最近在维护着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” 就好了。

0 0