在传递我的网址时,例如something:8000/something.jsp?param1=update¶m2=1000¶m3=SearchString%¶m4=3
,我收到以下错误:
Bad Request
Your browser sent a request that this server could not understand.
我知道我需要传递的SearchString%
作为参数,有问题。然后如何通过
URL中包含'%'的参数
答案 0 :(得分:7)
使用%25代替% 在URL中,%具有特殊含义作为转义字符
像(空格)这样的特殊字符可以编码为%20(空格的ascii代码/十六进制的32)
因此,百分号本身必须使用%的十六进制代码编码,恰好是25
您可以使用http://www.asciitable.com/在hx列
下查找相应的十六进制代码或者,如果您以编程方式(即使用javascript)执行此操作,则可以使用内置函数escape()
,如escape('%')
答案 1 :(得分:6)
基本上你需要确保传递的变量是编码的('%'字符是URL编码中的特殊字符)。
任何特殊字符 - %,?和&等...都需要进行编码。它们用'%'和十六进制数编码。所以'%'应该变成'%25','&'成为'%26'等等。
更新:请参阅When are you supposed to use escape instead of encodeURI / encodeURIComponent?了解您应该避免使用转义的原因。