这是我想要解决的问题的简化版本。 所以,尽量不要破解它:)
在R中,默认
'"' == '\"'
因此,当我使用
时URLencode('\"')
URLencode('"')
我得到了相同的结果:%22
然而,我真正想要的是
上述两个命令分别为 %5C%22
和%22
。
目标是将诸如'parse "I am * \"good\"" as adj'
之类的字符串编码为URL字符串
parse%20%22I%20am%20*%20%5C%22good%5C%22%22%20as%20adj
有什么想法吗?
========== update =====
考虑到上述问题的混淆。我想进一步澄清:
我理解R
将'\"'
视为'"'
。
但我希望R
自动而不是手动,将'\"'
的用户字符串输入转换为'\\\"'
将'"'
的输入字符串视为'"'
或'\"'
时,无论如何都是等效的。
答案 0 :(得分:1)
R字符串文字将反斜杠视为转义符号。如果你写\"
,反斜杠只是转义"
,但由于它不是有效的转义序列,反斜杠会被忽略。
要编写文字反斜杠,请使用\\
,双反斜杠。
URLencode('\\"')
## => "%5c%22"
URLencode('"')
## => "%22"
URLencode('parse "I am * \\"good\\"" as adj')
## => "parse%20%22I%20am%20*%20%5c%22good%5c%22%22%20as%20adj"
请参阅IDEONE demo