# Module Netencoding.Url

    module Url: sig .. end

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

Option `plus`: This option has been added because there are some implementations that do not map ' ' to '+', for example Javascript's `escape` function. The default is `true` because this is the RFC- compliant definition.

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

Option `plus`: Whether '+' is converted to space. The default is true. If false, '+' is returned as it is.

The optional arguments `pos` and `len` may restrict the string to process to this substring.

    val encode : ?plus:bool -> string -> string

Option `plus`: Whether spaces are converted to '+'. The default is true. If false, spaces are converted to "%20", and only %xx sequences are produced.

URL-encoded parameters:

The following two functions create and analyze URL-encoded parameters. Format: `name1=val1&name2=val2&...`

    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.