sub url_escape($) {
my $x = shift @_;
+ defined $x or return;
utf8::encode($x) if $utf8_mode;
$x =~ s/([^-\$_.!*'(),0-9A-Za-z\x80-\xff])/"%".unpack('H2',$1)/ge;
utf8::decode($x) if $utf8_mode;
sub url_deescape($) {
my $x = shift @_;
+ defined $x or return;
utf8::encode($x) if $utf8_mode;
$x =~ s/%(..)/pack("H2",$1)/ge;
utf8::decode($x) if $utf8_mode;
sub url_param_escape($) {
my $x = shift @_;
+ defined $x or return;
$x = url_escape($x);
$x =~ s/%20/+/g;
return $x;
sub url_param_deescape($) {
my $x = shift @_;
+ defined $x or return;
$x =~ s/\+/ /g;
return url_deescape($x);
}
sub html_escape($) {
my $x = shift @_;
+ defined $x or return;
$x =~ s/&/&/g;
$x =~ s/</</g;
$x =~ s/>/>/g;