Bug 11944: replace uri_escape with uri_escape_utf8 everywhere
authorJonathan Druart <jonathan.druart@biblibre.com>
Fri, 14 Mar 2014 15:07:11 +0000 (16:07 +0100)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Tue, 13 Jan 2015 16:07:01 +0000 (13:07 -0300)
To reproduce, edit, index notice with utf-8 char and search for it

Signed-off-by: Paola Rossi <paola.rossi@cineca.it>
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Signed-off-by: Dobrica Pavlinusic <dpavlin@rot13.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
12 files changed:
C4/Search.pm
C4/Search/History.pm
authorities/authorities-home.pl
cataloguing/addbiblio.pl
cataloguing/additem.pl
members/pay.pl
reports/guided_reports.pl
reserve/renewscript.pl
serials/routing-preview.pl
serials/routing.pl
serials/subscription-frequency.pl
serials/subscription-numberpattern.pl

index 044e6e0..42cdc23 100644 (file)
@@ -1479,17 +1479,17 @@ sub buildQuery {
         if ( @limits ) {
             $q .= ' and '.join(' and ', @limits);
         }
-        return ( undef, $q, $q, "q=ccl=".uri_escape($q), $q, '', '', '', '', 'ccl' );
+        return ( undef, $q, $q, "q=ccl=".uri_escape_utf8($q), $q, '', '', '', '', 'ccl' );
     }
     if ( $query =~ /^cql=/ ) {
-        return ( undef, $', $', "q=cql=".uri_escape($'), $', '', '', '', '', 'cql' );
+        return ( undef, $', $', "q=cql=".uri_escape_utf8($'), $', '', '', '', '', 'cql' );
     }
     if ( $query =~ /^pqf=/ ) {
         if ($query_desc) {
-            $query_cgi = "q=".uri_escape($query_desc);
+            $query_cgi = "q=".uri_escape_utf8($query_desc);
         } else {
             $query_desc = $';
-            $query_cgi = "q=pqf=".uri_escape($');
+            $query_cgi = "q=pqf=".uri_escape_utf8($');
         }
         return ( undef, $', $', $query_cgi, $query_desc, '', '', '', '', 'pqf' );
     }
@@ -1711,7 +1711,7 @@ sub buildQuery {
             $group_OR_limits{$k} .= " or " if $group_OR_limits{$k};
             $limit_desc      .= " or " if $group_OR_limits{$k};
             $group_OR_limits{$k} .= "$this_limit";
-            $limit_cgi       .= "&limit=" . uri_escape($this_limit);
+            $limit_cgi       .= "&limit=" . uri_escape_utf8($this_limit);
             $limit_desc      .= " $this_limit";
         }
 
@@ -1719,7 +1719,7 @@ sub buildQuery {
         else {
             $limit .= " and " if $limit || $query;
             $limit      .= "$this_limit";
-            $limit_cgi  .= "&limit=" . uri_escape($this_limit);
+            $limit_cgi  .= "&limit=" . uri_escape_utf8($this_limit);
             if ($this_limit =~ /^branch:(.+)/) {
                 my $branchcode = $1;
                 my $branchname = GetBranchName($branchcode);
@@ -1809,9 +1809,9 @@ sub _build_initial_query {
     #e.g. " and kw,wrdl:test"
     $params->{query} .= $operator . $operand;
 
-    $params->{query_cgi} .= "&op=".uri_escape($operator) if $operator;
-    $params->{query_cgi} .= "&idx=".uri_escape($params->{index}) if $params->{index};
-    $params->{query_cgi} .= "&q=".uri_escape($params->{original_operand}) if $params->{original_operand};
+    $params->{query_cgi} .= "&op=".uri_escape_utf8($operator) if $operator;
+    $params->{query_cgi} .= "&idx=".uri_escape_utf8($params->{index}) if $params->{index};
+    $params->{query_cgi} .= "&q=".uri_escape_utf8($params->{original_operand}) if $params->{original_operand};
 
     #e.g. " and kw,wrdl: test"
     $params->{query_desc} .= $operator . $params->{index_plus} . " " . $params->{original_operand};
index d82d14e..4330692 100644 (file)
@@ -152,7 +152,7 @@ sub set_to_session {
     my $session = C4::Auth::get_session($sessionID);
     return () unless $session;
     $session->param( 'search_history',
-        uri_escape( encode_json($search_history) ) );
+        uri_escape_utf8( encode_json($search_history) ) );
 }
 
 1;
index d499508..f41775c 100755 (executable)
@@ -146,7 +146,7 @@ if ( $op eq "do_search" ) {
     # next/previous would not work anymore
 
     # construction of the url of each page
-    my $value_url = uri_escape($value);
+    my $value_url = uri_escape_utf8($value);
     my $base_url = "authorities-home.pl?"
       ."marclist=$marclist"
       ."&amp;and_or=$and_or"
index fe7e1fd..d969215 100755 (executable)
@@ -874,7 +874,7 @@ if ( $op eq "addbiblio" ) {
             .'&frameworkcode='.$frameworkcode
             .'&circborrowernumber='.$fa_circborrowernumber
             .'&branch='.$fa_branch
-            .'&barcode='.uri_escape($fa_barcode)
+            .'&barcode='.uri_escape_utf8($fa_barcode)
             .'&stickyduedate='.$fa_stickyduedate
             .'&duedatespec='.$fa_duedatespec
                );
index 047b733..09e2d97 100755 (executable)
@@ -551,7 +551,7 @@ if ($op eq "additem") {
         print $input->redirect(
            '/cgi-bin/koha/circ/circulation.pl?'
            .'borrowernumber='.$fa_circborrowernumber
-           .'&barcode='.uri_escape($fa_barcode)
+           .'&barcode='.uri_escape_utf8($fa_barcode)
            .'&duedatespec='.$fa_duedatespec
            .'&stickyduedate=1'
         );
index a543823..0e41f80 100755 (executable)
@@ -173,7 +173,7 @@ sub redirect_to_paycollect {
     $redirect .= get_for_redirect( 'notify_id',    "notify_id$line_no",    0 );
     $redirect .= get_for_redirect( 'notify_level', "notify_level$line_no", 0 );
     $redirect .= get_for_redirect( 'accountlines_id', "accountlines_id$line_no", 0 );
-    $redirect .= q{&} . 'payment_note' . q{=} . uri_escape( $input->param("payment_note_$line_no") );
+    $redirect .= q{&} . 'payment_note' . q{=} . uri_escape_utf8( $input->param("payment_note_$line_no") );
     $redirect .= '&remote_user=';
     $redirect .= $user;
     return print $input->redirect($redirect);
index 784e62e..c357c70 100755 (executable)
@@ -754,7 +754,7 @@ elsif ($phase eq 'Run this report'){
             my $totpages = int($total/$limit) + (($total % $limit) > 0 ? 1 : 0);
             my $url = "/cgi-bin/koha/reports/guided_reports.pl?reports=$report_id&amp;phase=Run%20this%20report&amp;limit=$limit";
             if (@sql_params) {
-                $url = join('&amp;sql_params=', $url, map { URI::Escape::uri_escape($_) } @sql_params);
+                $url = join('&amp;sql_params=', $url, map { URI::Escape::uri_escape_utf8($_) } @sql_params);
             }
             $template->param(
                 'results' => \@rows,
index 2e01008..56fab0b 100755 (executable)
@@ -127,7 +127,7 @@ foreach my $barcode (@barcodes) {
 # redirection to the referrer page
 #
 if ( $input->param('destination') eq "circ" ) {
-    $cardnumber = uri_escape($cardnumber);
+    $cardnumber = uri_escape_utf8($cardnumber);
     print $input->redirect( '/cgi-bin/koha/circ/circulation.pl?findborrower='
           . $cardnumber
           . $failedrenews
index 1eda74d..1f219cc 100755 (executable)
@@ -133,7 +133,7 @@ $routingnotes =~ s/\n/\<br \/\>/g;
 $template->param(
     title => $subs->{'bibliotitle'},
     issue => $issue,
-    issue_escaped => URI::Escape::uri_escape($issue),
+    issue_escaped => URI::Escape::uri_escape_utf8($issue),
     subscriptionid => $subscriptionid,
     memberloop => $memberloop,
     routingnotes => $routingnotes,
index f822517..5dd53fe 100755 (executable)
@@ -62,7 +62,7 @@ if($op eq 'add'){
 if($op eq 'save'){
     my $sth = $dbh->prepare('UPDATE serial SET routingnotes = ? WHERE subscriptionid = ?');
     $sth->execute($notes,$subscriptionid);
-    my $urldate = URI::Escape::uri_escape($date_selected);
+    my $urldate = URI::Escape::uri_escape_utf8($date_selected);
     print $query->redirect("routing-preview.pl?subscriptionid=$subscriptionid&issue=$urldate");
 }
 
index d8d1ec4..80c7440 100755 (executable)
@@ -33,4 +33,4 @@ if ($auth_status ne "ok") {
 my $frequencyrecord=GetSubscriptionFrequency($frqid);
 binmode STDOUT, ":encoding(UTF-8)";
 print $input->header(-type => 'text/plain', -charset => 'UTF-8');
-print "{".join (",",map { "\"$_\":\"".uri_escape($frequencyrecord->{$_})."\"" }sort keys %$frequencyrecord)."}";
+print "{".join (",",map { "\"$_\":\"".uri_escape_utf8($frequencyrecord->{$_})."\"" }sort keys %$frequencyrecord)."}";
index bcb7eae..a58b10a 100755 (executable)
@@ -36,4 +36,4 @@ my $numpatternid=$input->param("numberpattern_id");
 my $numberpatternrecord=GetSubscriptionNumberpattern($numpatternid);
 binmode STDOUT, ":encoding(UTF-8)";
 print $input->header(-type => 'text/plain', -charset => 'UTF-8');
-print "{",join (",",map {"\"$_\":\"".(uri_escape($numberpatternrecord->{$_}) // '')."\"" }sort keys %$numberpatternrecord),"}";
+print "{",join (",",map {"\"$_\":\"".(uri_escape_utf8($numberpatternrecord->{$_}) // '')."\"" }sort keys %$numberpatternrecord),"}";