如果页面的表单中使用的是get方法发送的请求数据,那么Tomcat将不会按照<%@ page contentType="text/html;charset=UTF-8"%>设置的编码来转换,这个设置只对POST方法有用,因此我们需要在tomcat中的server.xml文件中的Connector中加上URIEncoding="utf-8"属性就可以拉,.
具体为:
A:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8"/>
B:
在配置文件Server.xml的Connector标签中加入“useBodyEncodingForURI="true"”,这个属性主要是让Tomcat 5.x在GET和POST方式使用相同的字符集。如果这样做仍不能解决问题,您可以尝试再加入另一个属性“URIEncoding=UTF-8”
本来,在 Tomcat 的 Server.xml 配置中,通过 GET 传送的 ?a=xxxxxx 这种 url 的编码是可以单独配置的(URIEncoding),通过 POST 传送的数据采用 request.setCharacterEncoding 来设置。Linux宝库 C.L | N R r
还有一个配置就是:指定 get 的编码是否与 post 的一致(useBodyEncodingForURI)。在 Tomcat 4 中,这个值默认 true,在 tomcat 5 中,这个值默认 false;