diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm index e983159f63..911532cdb1 100644 --- a/C4/AuthoritiesMarc.pm +++ b/C4/AuthoritiesMarc.pm @@ -277,6 +277,8 @@ sub SearchAuthorities { next; } + SetUTF8Flag( $authrecord ); + my $authid=$authrecord->field('001')->data(); my %newline; $newline{authid} = $authid; diff --git a/C4/Biblio.pm b/C4/Biblio.pm index 290efeca9e..8d62a618dd 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -23,7 +23,7 @@ use strict; use warnings; use Carp; -use Encode qw( decode ); +use Encode qw( decode is_utf8 ); use MARC::Record; use MARC::File::USMARC; use MARC::File::XML; @@ -2470,11 +2470,9 @@ sub TransformHtmlToMarc { foreach my $param_name ( keys %$cgi_params ) { if ( $param_name =~ /^tag_/ ) { my $param_value = $cgi_params->{$param_name}; - if ( $param_value = Encode::decode('UTF-8', $param_value) ) { - $cgi_params->{$param_name} = $param_value; + unless ( Encode::is_utf8( $param_value ) ) { + $cgi_params->{$param_name} = Encode::decode('UTF-8', $param_value ); } - - # FIXME - need to do something if string is not valid UTF-8 } }