【问题标题】:Pass a parameter containing '%' in URL?在 URL 中传递包含“%”的参数?
【发布时间】:2012-09-12 04:30:04
【问题描述】:

在传递我的网址时,例如 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中包含'%'的参数??

【问题讨论】:

标签: javascript jsp url


【解决方案1】:

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

(空格)等特殊字符可以编码为 %20(空格/32 十六进制的 ascii 代码)

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

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

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

【讨论】:

【解决方案2】:

看到这个:Encode URL in JavaScript?

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

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

更新:请参阅When are you supposed to use escape instead of encodeURI / encodeURIComponent?,了解为什么应避免使用转义。

【讨论】:

  • 绝对使用encodeURIComponent。最值得注意的是,它将“+”转换为单独逃脱的“+”。
猜你喜欢
  • 1970-01-01
  • 2015-12-21
  • 1970-01-01
  • 1970-01-01
  • 2014-03-25
  • 1970-01-01
  • 2015-12-17
  • 1970-01-01
  • 2018-07-05
相关资源
最近更新 更多