【发布时间】:2012-06-20 09:21:50
【问题描述】:
参考标题,我正在考虑如何将单词之间的空格转换为 %20 。
例如,
> y <- "I Love You"
如何制作y = I%20Love%20You
> y
[1] "I%20Love%20You"
非常感谢。
【问题讨论】:
参考标题,我正在考虑如何将单词之间的空格转换为 %20 。
例如,
> y <- "I Love You"
如何制作y = I%20Love%20You
> y
[1] "I%20Love%20You"
非常感谢。
【问题讨论】:
另一个选项是URLencode():
y <- "I love you"
URLencode(y)
[1] "I%20love%20you"
【讨论】:
RCurl::curlEscape()更好。
!$&'()*+,;=:/?@#[] ),您也可以使用URLencode,参数reserved 设置为TRUE。
gsub() 是一种选择:
R> gsub(pattern = " ", replacement = "%20", x = y)
[1] "I%20Love%20You"
【讨论】:
RCurl 包中的函数 curlEscape() 完成了这项工作。
library('RCurl')
y <- "I love you"
curlEscape(urls=y)
[1] "I%20love%20you"
【讨论】:
我喜欢URLencode(),但请注意,如果您的 url 已经包含 %20 和真实空格,有时它不会按预期工作,在这种情况下,甚至 URLencode() 的 repeated 选项都不会你想要什么。
就我而言,我需要同时运行 URLencode() 和 gsub 才能得到我需要的东西,如下所示:
a = "already%20encoded%space/a real space.csv"
URLencode(a)
#returns: "encoded%20space/real space.csv"
#note the spaces that are not transformed
URLencode(a, repeated=TRUE)
#returns: "encoded%2520space/real%20space.csv"
#note the %2520 in the first part
gsub(" ", "%20", URLencode(a))
#returns: "encoded%20space/real%20space.csv"
在这个特定的示例中,单独使用 gsub() 就足够了,但 URLencode() 当然不仅仅是替换空格。
【讨论】: