Ralf S. Engelschall


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:


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