1

例如something:8000/something.jsp?param1=update&param2=1000&param3=SearchString%&param4=3,在传递我的网址时,我收到以下错误:

Bad Request

Your browser sent a request that this server could not understand.

我知道SearchString%我需要将哪个作为参数传递,有问题。那么如何在 URL 中传递一个包含 '%' 的参数呢?

4

2 回答 2

9

使用 %25 代替 % 在 URL 中 % 作为转义字符具有特殊含义

像 (space) 这样的特殊字符可以像 %20 一样编码(空格/32 的 ascii 代码,十六进制)

因此,百分号本身必须使用 % 的十六进制代码进行编码,恰好是 25

您可以使用http://www.asciitable.com/在 hx 列下查找相应的十六进制代码

或者,如果您以编程方式执行此操作(即使用 javascript),您可以使用内置函数escape(),如escape('%')

于 2012-09-12T04:31:58.560 回答
6

看到这个:在 JavaScript 中编码 URL?

基本上你需要确保你传递的变量被编码('%' 字符是 URL 编码中的一个特殊字符)。

任何特殊字符 - %、?、& 等...都需要编码。它们用 '%' 和它们的十六进制数编码。所以'%'应该变成'%25','&'变成'%26',等等。

更新:请参阅何时应该使用转义而不是 encodeURI / encodeURIComponent?为什么你应该避免使用转义。

于 2012-09-12T04:33:33.880 回答