blob: c0b94bfe75037ca605a9c45a60d54f1e34fdd340 [file] [log] [blame]
% File src/library/utils/man/URLencode.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2015 R Core Team
% Distributed under GPL 2 or later
\name{URLencode}
\alias{URLencode}
\alias{URLdecode}
\title{Encode or Decode a (partial) URL}
\description{
Functions to percent-encode or decode characters in URLs.
}
\usage{
URLencode(URL, reserved = FALSE, repeated = FALSE)
URLdecode(URL)
}
\arguments{
\item{URL}{a character string.}
\item{reserved}{logical: should \sQuote{reserved} characters be
encoded? See \sQuote{Details}.}
\item{repeated}{logical: should apparently already-encoded URLs be
encoded again?}
}
\details{
Characters in a URL other than the English alphanumeric characters and
\samp{- _ . ~} should be encoded as \code{\%}
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 \sQuote{percent-encoding}.
In addition, \samp{! $ & ' ( ) * + , ; = : / ? @ # [ ]} are reserved
characters, and should be encoded unless used in their reserved sense,
which is scheme specific. The default in \code{URLencode} is to leave
them alone, which is appropriate for \samp{file://} URLs, but probably
not for \samp{http://} ones.
An \sQuote{apparently already-encoded URL} is one containing
\code{\%xx} for two hexadecimal digits.
}
\value{
A character string.
}
\references{
Internet STD 66 (formerly RFC 3986),
\url{https://tools.ietf.org/html/std66}
}
\examples{
(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
}
\keyword{utilities}