@@ -, +, @@ --- C4/Output.pm | 7 +------ C4/XSLT.pm | 3 ++- 2 files changed, 3 insertions(+), 7 deletions(-) --- a/C4/Output.pm +++ a/C4/Output.pm @@ -298,17 +298,12 @@ sub output_with_http_headers { $options->{'Content-Script-Type'} = 'text/javascript'; } -# We can't encode here, that will double encode our templates, and xslt -# We need to fix the encoding as it comes out of the database, or when we pass the variables to templates - -# utf8::encode($data) if utf8::is_utf8($data); - $data =~ s/\&\;amp\; /\&\; /g; + utf8::encode($data); print $query->header($options), $data; } sub output_html_with_http_headers { - binmode( STDOUT, ":encoding(utf8)" ); my ( $query, $cookie, $data, $status ) = @_; output_with_http_headers( $query, $cookie, $data, 'html', $status ); } --- a/C4/XSLT.pm +++ a/C4/XSLT.pm @@ -221,7 +221,8 @@ sub XSLTParse4Display { $stylesheet->{$xslfilename} = $xslt->parse_stylesheet($style_doc); } my $results = $stylesheet->{$xslfilename}->transform($source); - my $newxmlrecord = $stylesheet->{$xslfilename}->output_string($results); + my $newxmlrecord = $stylesheet->{$xslfilename}->output_as_chars($results); + #no need to decode with UTF-8 in header of XSLT templates: BZ 6554 return $newxmlrecord; } --