URLencode
Encode or Decode a (partial) URL
Functions to percent-encode or decode characters in URLs.
- Keywords
- utilities
Usage
URLencode(URL, reserved = FALSE, repeated = FALSE)
URLdecode(URL)
Arguments
- URL
- a character string.
- reserved
- logical: should ‘reserved’ characters be encoded? See ‘Details’.
- repeated
- logical: should apparently already-encoded URLs be encoded again?
Details
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.
Value
A character string.
References
Internet STD 66 (formerly RFC 3986), https://tools.ietf.org/html/std66
Examples
library(utils)
(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