如何使用R / RCurl对反斜杠进行编码

时间:2014-10-10 16:42:16

标签: r urlencode rcurl

我目前正在尝试对字符串进行编码以插入到网址中。我的问题是,当我的字符串包含反斜杠时,这似乎失败了。到目前为止,我已尝试使用URLencode,curlEscape(来自RCurl)和curlPercentEncode(来自RCurl)函数的4种方法,但它们都没有成功。

> URLencode("hello\hello")
Error: '\h' is an unrecognized escape in character string starting ""hello\h"
> curlEscape("hello\hello")
Error: '\h' is an unrecognized escape in character string starting ""hello\h"
> curlPercentEncode("hello\hello")
Error: '\h' is an unrecognized escape in character string starting ""hello\h"
> curlPercentEncode("hello\hello", amp=TRUE)
Error: '\h' is an unrecognized escape in character string starting ""hello\h"

1 个答案:

答案 0 :(得分:3)

您正在寻找

> URLencode("hello\\hello")
[1] "hello%5chello"

您获得的错误不是您尝试调用的任何功能;它没有达到实际调用其中任何一个。错误来自R的解析器。反斜杠是字符串文字本身的特殊字符,因此您需要在字符串文字中编写 double 反斜杠,以便生成包含反斜杠的字符串值。 (在反斜杠之后还有其他一些有用的东西;例如,"\""是你如何编写一个包含一个双引号字符的字符串值。阅读?Quotes以获取更多信息。)

由于这是字符串文字语法的问题,如果您从数据源中读取“插入URL的字符串”,则不应该出现这种情况。如果您需要在代码中直接编写此字符串,那么它应该只是一个问题。