request、response的setCharacterEncoding与response的setContentType
一、request中的setCharacterEncoding方法:作用是用指定的编码集去覆盖request对象中的默认的”ISO-8859-1″编码集,如“UTF-8”
这样request.getParameter(“”)方法就会用新的编码集去解码,
条件,就是必须在第一次使用request时就要调用这个方法来设置编码集,否则该方法就会无效。
注意:1.该方法只对post请求有效,对get请求无效;对于get请求,应该在server.xml中指定:URIEncoding=utf-8;
2.在执行request.setCharacterEncoding()之前不能执行request.getParameter()方法;
使用:request.setCharacterEncoding(“utf-8”);
二、response.setCharacterEncoding()方法:设置HTTP 响应的编码,用于设置服务器给客户端的数据的编码,一般不用该方法设置响应编码,一般使用response.setContentType()方法来设置HTTP响应的编码,同时指定了浏览器显示的编码;使用此方法需要在response.getWrite()执行之前或response提交之前;
三、response.setContentType(“text/html;charset=gb2312”)方法:是设置页面为中文编码。
response.setContentType指定HTTP响应的编码,同时指定了浏览器显示的编码。
注意:如果之前使用response.setContentType设置了编码格式,则使用response.setCharacterEncoding指定的编码格式覆盖之前的设置,与response.setContentType()相同的是,必须在getWrite执行之前或者response被提交之前。
该方法是指定服务器端编码格式,并告知客户端解码时的编码格式,这样两者保持一致,才不会出现乱码。