我有一个过滤器,我首先获取请求参数,然后设置字符编码
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?中所述,如果我们不设置编码,则设置默认值。
一旦设置了默认值,我们可以更改编码吗?如果不是,究竟是什么原因
答案 0 :(得分:0)
尝试这样
request.setCharacterEncoding("UTF-8");
final String name = request.getParameter("name");
一旦设置了默认值,我们可以更改编码吗?如果不是这样的话 确切的原因
是的,我们可以。但您必须确保设置编码 BEFORE 读取参数