【问题标题】:Servlets - Can we change character encoding after the default is setServlets - 我们可以在设置默认值后更改字符编码吗
【发布时间】:2018-04-26 08:15:02
【问题描述】:

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

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? 中解释的那样,如果我们不设置编码,则设置默认值。

设置默认编码后我们可以更改编码吗?如果不是,具体原因是什么

【问题讨论】:

    标签: java servlets jakarta-ee filter


    【解决方案1】:

    这样试试

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

    设置默认编码后我们可以更改编码吗?如果不是什么是 确切的原因

    是的,我们可以。但是您必须确保在BEFORE读取参数

    之前执行设置编码

    【讨论】:

    • 谢谢@Aramks,上面的 sn-p 会起作用,我的问题是为什么反过来是不可能的。即获取参数然后设置编码
    猜你喜欢
    • 2018-10-06
    • 2011-01-06
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 2019-07-18
    • 2016-06-17
    相关资源
    最近更新 更多