
uri_escape - Escape unsafe characters
uri_unescape - Unescape escaped characters

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

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.:
\x00-\x1f\x7f-\xff # all control and hi-bit characters a-z # all lower case characters ^A-Za-z # everything not a letter
The default set of characters to be escaped is:
\x00-\x20"#%;<>?{}|\\\\^~`\[\]\x7F-\xFF
The module can also export the %escapes hash which contains the mapping from all characters to the corresponding escape code.
