NAME

CGI::Uricode - uri-en/decode a data for CGI program.

SYNOPSIS

use CGI::Uricode qw(uri_encode uri_decode);

my %input = (
    'name' => 'Masanori HATA',
    'mail' => 'lovewing@dream.big.or.jp',
    'home' => 'http://go.to/hata',
    );
my $encoded = uri_encode(%input);
print $encoded;

my %output = uri_decode($encoded);
print 'name: ', $output{'name'};

DESCRIPTION

This module provides a set of functions for the data about application/x-www-form-urlencoded.

FUNCTIONS

uri_encode( $name1 => $value1 [, $name2 => $value2, ...] )

Exportable function. With the given $name and $value pairs, this function encode, construct and return a string of paired $name=$value strings those which are joined with `&' characters.

$encoded = uri_encode(%param);

Though it is expressed virtually input into a hash (%), it is actually input into an arry (@). The Joined $name=$value strings in the output string will appear in the exact order of which they have been given. So you can control the order of the $name=$value strings in the output string.

The application/x-www-form-urlencoded is specified in the HTML 4.01 http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1.

With this function, by internally using the uri_escape function, [SPACE] characters will be converted to "%20" strings to escape. This is normal manner in the HTTP "POST" method. To convert [SPACE] characters to "+" characters might occur in HTTP "GET" method to indicate the delimiters of query words, however this fuction won't do.

uri_decode($string)

Exportable function. This function decord and return the name and the value pairs from the given uri-encoded string. You might input them into a hash (%).

%param = uri_decode($encoded);
uri_escape($string)

Exportable function. This function return the uri-escaped string from the given string. The uri-escape is specified in the RFC 2396 http://www.ietf.org/rfc/rfc2396.txt (and it is partially updated by the RFC 2732). The module URI::Escape does the similar function.

uri_unescape($string)

Exportable function. This function return the uri-unescaped string from the given uri-escaped string. The uri-escape is specified in the RFC 2396 http://www.ietf.org/rfc/rfc2396.txt (and it is partially updated by the RFC 2732). The module URI::Escape does the similar function.

SEE ALSO

HTML 4.01: http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1
RFC 2396: http://www.ietf.org/rfc/rfc2396.txt (URI)
RFC 2732: http://www.ietf.org/rfc/rfc2732.txt (URI)

AUTHOR

Masanori HATA http://go.to/hata (Saitama, JAPAN)

COPYRIGHT

Copyright (c) 1999-2005 Masanori HATA. All rights reserved.

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