From 77593f956d1097410a4b9529547e7a985b098460 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Tue, 10 Mar 2015 13:35:03 +0100 Subject: [PATCH] Bug 13815 - plack loose CGI qw(-utf8) flag creating incorrect utf-8 encoding everywhere This is major problem for plack installations with utf-8 encoding. In this case, we are overriding CGI->new to setup utf-8 flag and get correctly decoded $cgi->params, and reset syspref cache using C4::Context->clear_syspref_cache Test scenario: 1. under plack try to search with utf-8 charactes 2. try to find patron with utf-8 characters Signed-off-by: Gaetan Boisson Signed-off-by: Jonathan Druart --- misc/plack/koha.psgi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/misc/plack/koha.psgi b/misc/plack/koha.psgi index 7acb567..a35eb77 100644 --- a/misc/plack/koha.psgi +++ b/misc/plack/koha.psgi @@ -5,6 +5,18 @@ use lib qw( ./lib ); use Plack::Middleware::Debug; use Plack::App::Directory; +use CGI qw(-utf8 ); # we will loose -utf8 under plack +{ + no warnings 'redefine'; + my $old_new = \&CGI::new; + *CGI::new = sub { + my $q = $old_new->( @_ ); + $CGI::PARAM_UTF8 = 1; + C4::Context->clear_syspref_cache(); + return $q; + }; +} + BEGIN { # override configuration from startup script below: -- 2.1.0