From 980d8fbed45b3d43341347e612b777b54fd12d10 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Mon, 10 Oct 2011 13:04:34 +0200 Subject: [PATCH] Bug 5616: UTF-8 problem in Card View / Follow up Decode data only if needed. Add instruction to use UTF8 in html header. Force utf8 on output handle. Signed-off-by: Katrin Fischer Umlauts and other diacritics in card view of z39.50 search are now correctly displayed. Signed-off-by: Paul Poulain removed 2 commented lines Signed-off-by: Chris Cormack --- catalogue/showmarc.pl | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/catalogue/showmarc.pl b/catalogue/showmarc.pl index d316833c8a..3cb00b5255 100755 --- a/catalogue/showmarc.pl +++ b/catalogue/showmarc.pl @@ -27,9 +27,12 @@ use strict; #use warnings; FIXME - Bug 2505 +use open OUT=>':utf8', ':std'; + # standard or CPAN modules used use CGI qw(:standard); use DBI; +use Encode; # Koha modules used use C4::Context; @@ -77,10 +80,8 @@ my $style_doc = $parser->parse_file($xslfile); my $stylesheet = $xslt->parse_stylesheet($style_doc); my $results = $stylesheet->transform($source); my $newxmlrecord = $stylesheet->output_string($results); -#warn $newxmlrecord; -print "Content-type: text/html\n\n"; -utf8::encode($newxmlrecord); -print $newxmlrecord; +$newxmlrecord=Encode::decode_utf8($newxmlrecord) unless utf8::is_utf8($newxmlrecord); #decode only if not in perl internal format +print $input->header(-charset => 'UTF-8'), $newxmlrecord; } else { @@ -89,5 +90,7 @@ $record =GetMarcBiblio($biblionumber) unless $record; my $formatted = $record->as_formatted; $template->param( MARC_FORMATTED => $formatted ); -output_html_with_http_headers $input, $cookie, $template->output; +my $output= $template->output; +$output=Encode::decode_utf8($output) unless utf8::is_utf8($output); +output_html_with_http_headers $input, $cookie, $output; } -- 2.39.5