servlet接受到的中文被编码成html实体是什么原因?

作者站长头像
站长
· 阅读数 26

服务端:

public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        String name = req.getParameter("name");
        String priceStr = req.getParameter("price");
        double price = Double.parseDouble(priceStr);
        String countStr = req.getParameter("count");
        int count  = Integer.parseInt(countStr);
        String remarks = req.getParameter("remarks");

        System.out.println("name=" + name);
        System.out.println("price=" + price);
        System.out.println("count=" + count);
        System.out.println("remarks=" + remarks);

        Fruit fruit = new Fruit();
        fruit.setName(name);
        fruit.setPrice(price);
        fruit.setCount(count);
        if (fruit.save()) {
            System.out.println("添加成功");
        }else{
            System.out.println("添加失败");
        }
    }

前端:

<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
    <div>
        <form action="add" method="post">
            name: <input type="text" name="name"><br>
            price: <input type="text" name="price"><br>
            count: <input type="text" name="count"><br>
            remarks: <input type="text" name="remarks"><br>
            <button type="submit">submit</button>
        </form>
    </div>
</body>
</html>

结果:servlet接受到的中文被编码成html实体是什么原因?

回复
1个回答
avatar
test
2024-06-29

没配置字符编码过滤器吧?

<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容