如何在Ruby中转义百分比字符串?

时间:2012-07-13 08:57:53

标签: ruby escaping uri

在Ruby程序中,我有一个Base64字符串的密码,因此可以包含正斜杠。我使用该密码和用户名来执行HTTP请求

username = "User"
password = "/Base/64/With/Slashes"
requestUrl = "http://#{username}:#{password}@company.com"
response = RestClient.get(requestUrl)

所以,如果password碰巧包含正斜杠,那么这些将被解释为URI的端口,并且我将收到一条错误消息,指出我的URI无效。显然,password中的每个正斜杠都必须替换为%2F

我尝试使用URI.escape(),但它不会影响正斜杠。

如何将百分比转义为Base64字符串,以便结果可用于HTTP请求身份验证?

1 个答案:

答案 0 :(得分:1)

@injekt在评论中有正确的答案,但这里有一个稍微详细的版本作为答案:

CGI.escape()是适合该任务的合适工具。其文件:

  

对字符串进行URL编码。