Encoding/Decoding within URLs:
The following two functions perform the '%'-substitution for characters that may otherwise be interpreted as metacharacters.
According to: RFC 1738, RFC 1630
plus: This option has been added because there are some
escape function. The default is
true because this is the RFC-
There are no tstring and polymorphic versions of the encode and decode functions, as URLs are comparatively short, and it is considered as acceptable for the user to convert types as needed, even if strings need to be copied for that.
val decode :
?plus:bool -> ?pos:int -> ?len:int -> string -> string
plus: Whether '+' is converted to space. The default
is true. If false, '+' is returned as it is.
The optional arguments
len may restrict the string
to process to this substring.
val encode :
?plus:bool -> string -> string
plus: Whether spaces are converted to '+'. The default
is true. If false, spaces are converted to "%20", and
only %xx sequences are produced.
The following two functions create and analyze URL-encoded parameters.
val mk_url_encoded_parameters :
(string * string) list -> string
The argument is a list of (name,value) pairs. The result is the single URL-encoded parameter string.
val dest_url_encoded_parameters :
string -> (string * string) list
The argument is the URL-encoded parameter string. The result is the corresponding list of (name,value) pairs. Note: Whitespace within the parameter string is ignored. If there is a format error, the function fails.