在Tomcat4中,get和post的编码都是通过request.setCharacterEncoding进行设定的。
在Tomcat5中,get的编码是通过在Connector节点增加URIEncoding属性进行设定,而post的编码是通过request.setCharacterEncoding进行设定的。
将useBodyEncodingForURI设定为true,就可以通过request.setCharacterEncoding直接解决get和post中的乱码问题。
<Connector port="8888" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK" useBodyEncodingForURI="true"/>
试验结果:在Tomcat5中,设置URIEncoding="GBK",request.setCharacterEncoding设置为UTF-8时,可以保证URL中的中文不会乱码,以post方式提交的form不会乱码,但以get方式提交的form会乱码。