无题
详解
Request接收参数时有get和post两种请求方式,但是处理中文的编码却不一样,我们在做项目时会全站都采用统一的编码,最常用的就是UTF-8,在UTF-8编码的项目中当我们使用post请求时:—- 处理post编码问题,请求信息中,只有POST存在正文,所谓POST参数编码就是请求正文的编码。
—- 默认情况下,使用getParameter()获取POST请求参数时,使用的是ISO-8859-1编码。
1 | String name = request.getParameter("name"); |
因为在获取参数时已经被错误编码了,但我们知道,乱码的两个原因:本来是使用UTF-8编码的,还错误的使用了ISO-8859-1编码。所以我们可以先使用ISO-8859-1获取字节数组,然后再使用正确的UTF-8编码得到字符串,这样就没问题了。
request的setCharacterEncoding()可以设置编码,当然这必须在调用所有的getParameter()方法之前调用request的setCharacterEncoding()方法来设置编码,这样就不会使用ISO解读字符串了,而是使用你给定的编码来解读。
1 | request.setCharaterEncoding("UTF-8"); |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 KAZAMAのBlog!

