根据何时将空间编码为加号 (+) 或 %20?当我们在 html 表单名称或值中有任何空格时,我们的浏览器会将空格编码为“+”,但是如果我们有用户故意输入的“加号”值(例如文本字段)怎么办?我们的网络服务器会误解该符号并将其改回空格吗?我们将如何避免这种情况?
问问题
5749 次
2 回答
3
我们的网络服务器会误解该符号并将其改回空格吗?
不,因为当+
在表单中输入一个字符时,它会被编码为%2B
.
这是一个例子(小提琴):
<form method="POST" action="/">
<input name="foo" type="text" value="+">
<input name="bar" type="text" value="bacon sauce">
</form>
<script>
// This encodes the form, (i.e. that's what your server receives)
alert( $('form').serialize() );
</script>
警报框将显示:foo=%2B&bar=bacon+sauce
这意味着+
被编码为%2B
。因此,在您的服务器上,只需将所有+
字符转换为 aspace
和%2B
,+
但您可能应该将解码部分留给您的框架或库。</p>
这是一个你可以用来玩参数编码的小提琴:小提琴
于 2012-11-12T05:59:40.050 回答
0
加号需要使用 % 符号转换为urlencoded形式。在这种情况下 %2B。
于 2012-11-12T05:53:46.540 回答