0

根据何时将空间编码为加号 (+) 或 %20?当我们在 html 表单名称或值中有任何空格时,我们的浏览器会将空格编码为“+”,但是如果我们有用户故意输入的“加号”值(例如文本字段)怎么办?我们的网络服务器会误解该符号并将其改回空格吗?我们将如何避免这种情况?

4

2 回答 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 回答