传递包含在URL“%”的参数?(Pass a parameter containing '%

2019-06-28 05:28发布

虽然通过我的URL,例如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“%”的参数??

Answer 1:

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

像(空间)特殊字符可以被编码象%20(对空间的ASCII码十六进制/ 32)

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

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

另外,如果你是编程这样做(即用JavaScript),你可以使用内置函数escape()escape('%')



Answer 2:

看到这一点: 编码URL在JavaScript?

基本上,你需要确保你逝去的是编码的变量(“%”字符是URL编码特殊字符)。

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

更新 :看你什么时候应该使用逃生,而不是是encodeURI / encodeURIComponent方法? 为什么你应该避免使用逃生。



文章来源: Pass a parameter containing '%' in URL?