Bug 15818 - OPAC search with utf-8 characters and without results generates encoding error

When searching for something in OPAC which doesn't result in any results but have utf-8
characters in search string we get following encoding error:

Cannot decode string with wide characters at /usr/lib/i386-linux-gnu/perl5/5.20/Encode.pm line 215.

This is because we are trying to decode string which is allready correctly
marked as utf-8.

Test scenario:

1) enter search string with utf-8 characters in opac which doesn't
   return any results
2) verify that you get application error
3) apply this patch
4) re-run query and verify that errror is gone

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Step 0: Define "OPACNoResultsFound" with '{QUERY_KW}'
Note that I don't get the error (Encode 2.60) but the search terms are
not display correctly.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
The variable to be decoded comes from already decoded vars (via
the -utf8 flag from CGI), following the trail in Search.pm.

Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
This commit is contained in:
Dobrica Pavlinusic 2016-02-15 15:23:19 +01:00 committed by Brendan Gallagher
parent 43bcc1c42c
commit ea69693997
1 changed files with 0 additions and 1 deletions

View File

@ -890,7 +890,6 @@ for (my $i=0;$i<@servers;$i++) {
if ($nohits and $nohits=~/{QUERY_KW}/){
# extracting keywords in case of relaunching search
(my $query_kw=$query_desc)=~s/ and|or / /g;
$query_kw = Encode::decode_utf8($query_kw);
my @query_kw=($query_kw=~ /([-\w]+\b)(?:[^,:]|$)/g);
$query_kw=join('+',@query_kw);
$nohits=~s/{QUERY_KW}/$query_kw/g;