使用tomcat9时,get和post方法传中文,req.getparameter获取在控制台输出为NCR编码

问题遇到的现象和发生背景

学习servlet时,在HTML表单提交了中文参数并输出到控制台,结果是NCR编码格式

问题相关代码,请勿粘贴截图

Hello World!

@WebServlet(urlPatterns = {"/demo1","/demo2"})
public class ServletDemo extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    req.setCharacterEncoding("UTF-8");
    String username=req.getParameter("username");
    System.out.println(StringEscapeUtils.unescapeHtml(username));
    }

    @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    this.doGet(req,resp);
}

}

运行结果及报错内容

img

img

我的解答思路和尝试过的方法
我想要达到的结果

切换commons-lang3依赖包的版本为3.4

<dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
</dependency>

方法改为StringEscapeUtils.unescapeHtml4("的")