我正在尝试通过HTTP请求传递一个字符串,该请求在URL查询字符串中有一个字符%
。
url = url + "?q=" + str + "&block=" + block; // str contains the '%' character
但是在我发送此信息的ColdFusion页面上返回以下错误:
元素Q在URL中未定义。
如何对网址中的%
符号进行编码?
答案 0 :(得分:12)
您应该将您传递的所有值作为查询参数进行网址编码,但%的网址编码为%25
更新:如果您在javascript中构建查询参数,您可能想要这样做:
url=url+"?q="+encodeURIComponent(str)+"&block="+encodeURIComponent(block)
(再次更新了ZeissS非常有用的建议,使用encodeURIComponent
代替escape
。另请参阅http://xkr.us/articles/javascript/encode-compare/)
答案 1 :(得分:9)
将字符串传递给函数encodeURI(...)
,它将转义所有特殊字符,而不仅仅是%
答案 2 :(得分:4)
答案 3 :(得分:3)
答案 4 :(得分:-2)
我们可以在ColdFusion中使用URLEncodedFormat(),也可以使用下面提到的。
这两个也有助于我们解决问题。