我有一个jsp页面(比如说page1.jsp),它具有带有action =“ page2.jsp”的html表单。在page1.jsp和page2.jsp中,我<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>位于头部的外部和<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">头部。
<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
如果我以这种形式写希腊字母,我会在url(get方法)中看到类似的内容 http://localhost:8080//addProblem.jsp?lastNameForm=%CF%84%CF%85%CE%B8%CF%84%CF%85%CE%B8%CF%84%CF%85&firstNameForm=&eMa ....
http://localhost:8080//addProblem.jsp?lastNameForm=%CF%84%CF%85%CE%B8%CF%84%CF%85%CE%B8%CF%84%CF%85&firstNameForm=&eMa ....
并从page2.Jsp中使用 <% out.println(request.getParameter("lastNameForm")); %>
<% out.println(request.getParameter("lastNameForm")); %>
我明白了,该αÏδαÏδ 怎么办?
αÏδαÏδ
因此,您想GET使用UTF-8字符编码对请求参数进行URL解码。对于URL解码GET请求参数,您需要在服务器配置中设置字符编码。如何执行该操作取决于所讨论的服务器,最好是使用关键字“ uri编码”引用其文档。例如在Tomcat中,您需要URIEncoding在中<Connector> 为HTTP请求设置元素的属性server.xml,另请参阅此文档:
GET
UTF-8
URIEncoding
<Connector>
server.xml
<Connector (...) URIEncoding="UTF-8" />
HttpServletRequest#setCharacterEncoding()正如Bozho提到的,该方法仅适用于POST参数包含在请求正文中而不是URL中的请求。
HttpServletRequest#setCharacterEncoding()
POST
有关更多背景信息和所有解决方案的详细概述,您可能会发现本文很有用。