From 5c7a5c1350944996c327f868ce461532b06bcfb3 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Thu, 18 Apr 2013 15:07:40 -0300 Subject: [PATCH] Bug 10074 - Encoding problems in templates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug 6554 patched output_with_http_headers to encode utf8 data, and Templates.pm to expect utf8 data to be encoded. (At least) the staff login screen outputs directly to STDOUT (Auth.pm does, WHICH IS WRONG!) and wasn't fixed to do the encoding first. This patch adds the encode step (using Encode::encode) and that's it. Regards To+ Sponsored-by: Universidad Nacional de Córdoba --- C4/Auth.pm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/C4/Auth.pm b/C4/Auth.pm index ca061b5..fafb5de 100644 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -19,10 +19,13 @@ package C4::Auth; use strict; use warnings; + use Digest::MD5 qw(md5_base64); use Storable qw(thaw freeze); use URI::Escape; use CGI::Session; +use Encode; +use Carp; require Exporter; use C4::Context; @@ -1067,12 +1070,15 @@ sub checkauth { $template->param( %info ); # $cookie = $query->cookie(CGISESSID => $session->id # ); + my $data = $template->output; + eval { $data = encode('UTF-8',$data,Encode::FB_CROAK); }; + if ($@) { carp "UTF8 encoding error: $@" }; print $query->header( -type => 'text/html', -charset => 'utf-8', -cookie => $cookie ), - $template->output; + $data; safe_exit; } -- 1.8.1.2