我正在使用Java Servlet构建我的课程网页应用。在某些时候,我想要重定向到一个JSP页面,并使用GET方法发送一些信息以供使用。
在我的Servlet中,我有以下代码:
在 JSP 中,我使用以下方式获取这些参数。
一切都很正常,只有当参数不仅包含拉丁字符时才会出现问题(在我的情况下,它们可以包含希腊字符)。例如,如果name=ΕΡΕΥΝΑΣ,那么我得到的name=¡¥。我该如何解决这个编码问题(将其设置为UTF-8)?encodeRedirectURL()难道不是在做这个工作吗?我还需要在某个时候使用encodeURL()吗?我尝试了后者,但问题仍然存在。
提前感谢 :)
String link = new String("index.jsp?name="+metadata.getName()+"&title="+metadata.getTitle());
response.sendRedirect(response.encodeRedirectURL(link));
在 JSP 中,我使用以下方式获取这些参数。
<%
request.getParameter("name");
request.getParameter("title");
%>
一切都很正常,只有当参数不仅包含拉丁字符时才会出现问题(在我的情况下,它们可以包含希腊字符)。例如,如果name=ΕΡΕΥΝΑΣ,那么我得到的name=¡¥。我该如何解决这个编码问题(将其设置为UTF-8)?encodeRedirectURL()难道不是在做这个工作吗?我还需要在某个时候使用encodeURL()吗?我尝试了后者,但问题仍然存在。
提前感谢 :)
pageEncoding="UTF-8"
不仅设置了响应编码(为了正确显示参数而必须),而且还隐式地在Content-Type
头中设置了编码方式。你不需要通过contentType
显式设置编码方式。阅读链接。 - BalusC"..." + ... + "..." + ... + "..."
更易读。这对于功能要求并非强制性的。 - BalusC