@node URI/Escape, URI/URL, UNIVERSAL, Module List
@unnumbered Escape unsafe characters


@unnumberedsec NAME

uri_escape - Escape unsafe characters

uri_unescape - Unescape escaped characters

@unnumberedsec SYNOPSIS

@example
use URI::Escape;
$safe = uri_escape("10% is enough\n");
$verysafe = uri_escape("foo", "\0-\377");
$str  = uri_unescape($safe);
@end example

@unnumberedsec DESCRIPTION

This module provide functions to escape and unescape URI strings.
Some characters are regarded as "unsafe" and must be escaped in
accordance with RFC 1738.  Escaped characters are represented by a
triplet consisting of the character "%" followed by two hexadecimal
digits.

The uri_escape() function takes an optional second argument that
overrides the set of characters that are to be escaped.  The set is
specified as a string that can be used in a regular expression
character class (between [ ]).  E.g.:

@example
\x00-\x1f\x7f-\xff          # all control and hi-bit characters
a-z                         # all lower case characters
^A-Za-z                     # everything not a letter
@end example

The default set of characters to be escaped is:

@example
\x00-\x20"#%;<>?@{@}|\\\\^~@`\[\]\x7F-\xFF
@end example

The module can also export the %escapes hash which contains the
mapping from all characters to the corresponding escape code.

@unnumberedsec SEE ALSO

@xref{URI/URL,URI/URL},

