]> bicyclesonthemoon.info Git - botm/common-perl/commitdiff
URL decode + v1.0.24
authorb <rowerynaksiezycu@gmail.com>
Fri, 29 Dec 2023 01:55:52 +0000 (01:55 +0000)
committerb <rowerynaksiezycu@gmail.com>
Fri, 29 Dec 2023 01:55:52 +0000 (01:55 +0000)
botm_common.pm

index 528b2ff556ef4ea80561712180b49b01466e0d23..e3f4c839b77a046e4f3475664fe91f3f07e0eaad 100644 (file)
@@ -25,7 +25,7 @@ use Encode ('encode', 'decode');
 
 use Exporter;
 
-our $VERSION     = '1.0.23';
+our $VERSION     = '1.0.24';
 our @ISA         = qw(Exporter);
 our @EXPORT      = ();
 our @EXPORT_OK   = (
@@ -589,12 +589,16 @@ sub url_encode_1ch {
 # $t is the text to decode.
 # $encoding is the encoding to use
 # (if left empty, utf8 is assumed)
+# if $plus is true then '+' will be decoded to ' '.
 sub url_decode {
-       (my $t, my $encoding) = @_;
+       (my $t, my $encoding, my $plus) = @_;
        
        if ($encoding eq '') {
                $encoding = 'utf8';
        }
+       if ($plus) {
+               $t =~ s/\+/ /gs;
+       }
        $t =~ s/((%[0-9A-Fa-f]{2})+)/url_decode_xch($1, $encoding)/egs;
        return $t;
 }
@@ -797,8 +801,8 @@ sub url_query_decode {
        my @list = split('&', $query);
        foreach my $entry (@list) {
                (my $name, my $value) = split('=', $entry, 2);
-               $name = url_decode($name, $encoding);
-               $value = url_decode($value, $encoding);
+               $name = url_decode($name, $encoding, 1);
+               $value = url_decode($value, $encoding, 1);
                $data{$name} = $value;
        }
        return %data;