根据When to encode space to plus (+) or %20?,当我们在html表单名称或值中有任何空格时,我们的浏览器会将空格编码为“+”,但如果我们有“加号”符号值(例如文本字段),该怎么办?哪个是用户有意打字的?我们的网络服务器是否会误解符号并将其更改回空间?我们如何避免这种情况?
答案 0 :(得分:3)
我们的网络服务器是否会误解符号并将其更改回空间?
不,因为当在表单中输入+
字符时,它会被编码为%2B
。
以下是一个示例(fiddle):
<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
。因此,在您的服务器上,只需将所有+
字符转换为space
,将%2B
转换为+
,但您应该将解码部分保留在框架或库中。
这是一个可以用来参数编码的小提琴:fiddle
答案 1 :(得分:0)
需要使用%表示法将Plus转换为urlencoded形式。在这种情况下%2B。