提交表单时特殊字符变成符号
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"?>
添加到页面的最开头。
如果这不起作用,您可以尝试以下操作:
- 这是一个
GET
请求,服务器未配置为使用 UTF-8 解析请求 URI。如果您使用 Tomcat,则将 /conf/server.xml
中 HTTP 连接器的 URIEncoding
属性设置为 UTF-8
。
- 如果是
POST
请求,那么你需要确保servletcontainer使用UTF-8
对请求体进行编码。您可以提前 request.setCharacterEncoding("UTF-8")
完成。
我有一个带有表单的页面,用户必须在其中填写输入,他们的登录名会自动填写在隐藏输入中,我有一个用户的登录名带有特殊字符(在我的例子中,字符是 é
).提交表单时,特殊字符变为符号 é
。这是我的资料:
表格
<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"?>
添加到页面的最开头。
如果这不起作用,您可以尝试以下操作:
- 这是一个
GET
请求,服务器未配置为使用 UTF-8 解析请求 URI。如果您使用 Tomcat,则将/conf/server.xml
中 HTTP 连接器的URIEncoding
属性设置为UTF-8
。 - 如果是
POST
请求,那么你需要确保servletcontainer使用UTF-8
对请求体进行编码。您可以提前request.setCharacterEncoding("UTF-8")
完成。