【发布时间】:2016-02-25 09:17:49
【问题描述】:
由于某种原因,一段代码将空格替换为 \u00A0 - 即 Non-breaking space。然后使用此代码清理 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。
【问题讨论】:
-
我在将内容从 Gmail 复制到纯文本文件时得到了这些。我一次又一次地忘记了你不能这样做,gmail 会弄乱你的明文副本。