今天在学习Java请求转发和响应重定向时遇到一个问题,使用请求转发到一个html页面出现了乱码,但是用响应重定向不会乱码。请求和响应也设置了字符集。
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
但是没有作用。
请求转发结果如下
响应重定向结果
具体问题处在哪里我也不是很清楚,应该是在servletA转发请求给servletB的时候字符集编码出现一些问题。
解决方法
在经过一番百度之后找到了解决方法。参考链接https://blog.csdn.net/qq_43680675/article/details/108794012
链接第一个方法将要请求的html页面的字符集设置为gbk,设置后成功解决了乱码问题。
链接中第二个方法将servlet中响应字符编码设置为
resp.setContentType("text/html");
我在多个电脑使用这个方法,有的电脑成功解决乱码,有的电脑没有解决乱码问题。