chrome/firefox这些不管你网页编码设置的是什么,发送请求都是使用UTF-8编码
Get请求的参数编码处理:
这个目前chrome/firefox浏览器默认发送的就是UTF-8编码的参数(不管你网页是什么编码),接收也是UTF-8的,直接获取不会出错
为啥默认的是UTF-8?因为在server.xml中的对应Connector上配置了:
URIEncoding=”UTF-8”
这个配置只对get请求的参数有效
Post请求的参数编码处理:
参数会先使用web容器的默认字符编码处理,一般默认是ISO-8859-1编码,所以想要获取正确的字符串,必须转码,使用下面的语句就可以:
String name = new String(req.getParameter(“namePost”).getBytes(“ISO-8859-1”),”UTF-8”);
先按照ISO-8859-1编码获取字节数组,然后把这个字节数组转化为UTF-8的字符串
容器实现的RequestFacade提供了快速转码方法:
即setCharacterEncoding(String enc)
直接使用setCharacterEncoding(“UTF-8”)即可改变默认编码为UTF-8
setCharacterEncoding(String enc)只可改变post方法传过来的参数编码