Encode or Decode a (partial) URL
Functions to percent-encode or decode characters in URLs.
URLencode(URL, reserved = FALSE, repeated = FALSE) URLdecode(URL)
a character string.
logical: should ‘reserved’ characters be encoded? See ‘Details’.
logical: should apparently already-encoded URLs be encoded again?
Characters in a URL other than the English alphanumeric characters and
- _ . ~ should be encoded as
plus a two-digit hexadecimal representation, and any single-byte
character can be so encoded. (Multi-byte characters are encoded
byte-by-byte.) The standard refers to this as ‘percent-encoding’.
In addition, ! $ & ' ( ) * + , ; = : / ? @ # [ ] are reserved
characters, and should be encoded unless used in their reserved sense,
which is scheme specific. The default in
URLencode is to leave
them alone, which is appropriate for file:// URLs, but probably
not for http:// ones.
An ‘apparently already-encoded URL’ is one containing
%xx for two hexadecimal digits.
A character string.
Internet STD 66 (formerly RFC 3986), https://tools.ietf.org/html/std66
(y <- URLencode("a url with spaces and / and @")) URLdecode(y) (y <- URLencode("a url with spaces and / and @", reserved = TRUE)) URLdecode(y) URLdecode(z <- "ab%20cd") c(URLencode(z), URLencode(z, repeated = TRUE)) # first is usually wanted