Servlets - 我们可以在设置默认值后更改字符编码

时间:2018-04-26 08:15:03

标签: java servlets java-ee filter

我有一个过滤器,我首先获取请求参数,然后设置字符编码

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
    final HttpServletRequest request = (HttpServletRequest) servletRequest;
    final HttpServletResponse response = (HttpServletResponse) servletResponse;
    final String name = request.getParameter("name");
    request.setCharacterEncoding("UTF-8");

这不起作用。 如request.getCharacterEncoding() returns NULL... why?中所述,如果我们不设置编码,则设置默认值。

一旦设置了默认值,我们可以更改编码吗?如果不是,究竟是什么原因

1 个答案:

答案 0 :(得分:0)

尝试这样

request.setCharacterEncoding("UTF-8");
final String name = request.getParameter("name");
  

一旦设置了默认值,我们可以更改编码吗?如果不是这样的话   确切的原因

是的,我们可以。但您必须确保设置编码 BEFORE 读取参数