request.setCharacterEncoding相关问题

  • Post author:
  • Post category:其他


在过滤器链中的学习中,我发现显示出来的网页出现乱码

如图所示:


本该显示中文的地方却显示的是“ ?”

为了解决这个问题,我查阅了资料发现是因为没有使用request.setCharacterEncoding来用指定的编码集去覆盖request对象中的默认的编码集,导致出现乱码。

于是我找到了需要显示中文的位置AllFilter,然后添加了如下代码

request.setCharacterEncoding("UTF-8");

运行后发现网页显示依旧是乱码。

原因是,这个方法必须在第一次使用request时就要调用这个方法来设置编码集,否者该方法就会无效。

由于我过滤器链中(FilterChain01->FilterChain02->AllFilter),第一个过滤器FilterChain01将请求转发给过滤器链上的下一个对象,也就是FilterChain02时,就使用过request,

因此将request.setCharacterEncoding使用在AllFiler无效。

将request.setCharacterEncoding(“UTF-8”)使用在FilterChain01,运行:

可以看到,中文显示出来了,乱码问题得到解决。



版权声明:本文为weixin_58915328原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。