html提交后丢失加号的问题
客户端(前端)发起数据提交时,加号是一个很容易被忽略的问题。
因为后端程序 比如apache 在接收到数据后会进行 urldecode 操作,而这个操作会将 加号 转换成 空格 。
所以如果在数据被传递以前没有进行 urlencode 操作的话,其中的加号就会被后端的程序转换成空格。
如果你是正在编写一个ajax代码的话添加一步 urlencode 的编码就可以了。
如果你是正在编写一段 html 代码的话就需要注意了 在 form 中的 enctype 属性是可以帮助你完成 urlencode 的地方,但是 multipart/form-data 并不总是像预期的那样工作,而 application/x-www-form-urlencoded 能像预期的那样稳定的为我们完成 urlencode 工作。不要以为这就已经完成工作了,接下来,你还需要手动的将你所有的要传递给后端程序的加号全部改为"%2B"(不要引号,只要引号里面的%2B并且是半角字符)。
用一个例子来说明或许更加清晰一些
首先 注意 form 的 enctype 属性
<form action="" enctype="application/x-www-form-urlencoded" >
再来是 要传递值中的 + 用 %2B 替代
<option value="UTC%2B1">UTC+1</option>
好了,现在就可以放心了 你的加号已经能够准确的传递给后台的程序去处理了。