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被提交之前。

该方法是指定服务器端编码格式,并告知客户端解码时的编码格式,这样两者保持一致,才不会出现乱码。

原文地址:https://www.cnblogs.com/ttzz/p/8455365.html