由于某些原因,一段代码将空格替换为
以下是演示此问题的示例JSP。
为什么参数显示为“Hello there”?
\u00A0
——即不间断空格。然后使用此代码对URL进行净化(是的,我知道这很糟糕——在许多方面都是如此)。奇怪的是,在我的测试JSP中显示这些内容时,会出现一个流浪的Â
——为什么呢?以下是演示此问题的示例JSP。
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<%
String[] parameters = request.getParameterValues("p");
if (parameters == null || parameters.length == 0) {
parameters = new String[]{""};
}
%>
</head>
<body>
<h1>Hello World!</h1>
<a href='index.jsp?p=<%="Hello\u00A0there"%>'>A Link</a>
<p><%=parameters[0]%></p>
</body>
</html>
为什么参数显示为“Hello there”?
c2
从哪里来的?
附加信息:
顺便说一下:parameter
的十六进制是48 65 6c 6c 6f c2 a0 74 68 65 72 65
,在原地显示了c2
。