通常互联网请求包括两种类型 get,post,他们请求所带参数,通常情况下,是由servlet container去处理,程序一般情况下不干预
但有一点必须要注意,就是客户端和服务器端必须统一
服务器端:
GET
- tomcat 总是以server.xml中,以<Connector URIEncoding="xxx">中指定的编码,来解释GET请求的参数。如未指定,就是8859_1, 如果设置了Tomcat5参数:<Connector useBodyEncodingForURI="true">,那么GET请求也以request.setCharacterEncoding("xxx")的编码为准
- jetty 总是以UTF-8来解码GET请求的参数
POST
对于POST请求,则以request.setCharacterEncoding("xxx")的编码为准,如未指定,就是8859_1
客户端:
GET
直接输入在浏览器地址栏里的URL,根据浏览器的设置和操作系统的设置来确定编码
例如,中文Windows中,无论ie还是firefox,经试验默认都是GBK
POST
浏览器所提交的表单,均以当前页面的字符集编码
一个GBK编码的页面所提交的表单,是以GBK编码的,无论其method为GET还是POST