我们如何在html表单中添加“加号”?

时间:2012-11-12 05:50:50

标签: java html jsp java-ee servlets

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

2 个答案:

答案 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。