++ed by:

133 non-PAUSE users.

Gisle Aas


URI::Escape - Escape and unescape unsafe 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 following functions are provided (and exported by default):

uri_escape($string, [$unsafe])

This function replaces all unsafe characters in the $string with their escape sequence and return the result.

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:


Returns a string with all %XX sequences replaced with the actual character.

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




Copyright 1995-1997 Gisle Aas.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.