提交表单时特殊字符变成符号

A special character turns into symbol when form is submitted

我有一个带有表单的页面,用户必须在其中填写输入,他们的登录名会自动填写在隐藏输入中,我有一个用户的登录名带有特殊字符(在我的例子中,字符是 é).提交表单时,特殊字符变为符号 é。这是我的资料:

表格

<input type="hidden" name="Employe" value="<%= employe %>">

当我检查元素时,我可以看到值为 rémax

当我这样做时

String employe = request.getParameter("Employe");
System.out.println(employe);

输出为rémax

这似乎不是字符集的问题,因为我可以在两个视图中显示特殊字符。为什么特殊字符没有按预期显示?

尝试将 <?xml version="1.0" encoding="UTF-8"?> 添加到页面的最开头。

如果这不起作用,您可以尝试以下操作:

  1. 这是一个 GET 请求,服务器未配置为使用 UTF-8 解析请求 URI。如果您使用 Tomcat,则将 /conf/server.xml 中 HTTP 连接器的 URIEncoding 属性设置为 UTF-8
  2. 如果是POST请求,那么你需要确保servletcontainer使用UTF-8对请求体进行编码。您可以提前 request.setCharacterEncoding("UTF-8") 完成。