Browse Source

Bug 5883 : Prevent re-encoding the items if they are already in UTF-8 in ModBiblio.

Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
3.4.x
Frédérick Capovilla 13 years ago
committed by Chris Cormack
parent
commit
cce98a2914
  1. 9
      C4/Biblio.pm

9
C4/Biblio.pm

@ -320,10 +320,15 @@ sub ModBiblio {
foreach my $fielditem (@fields) {
my $field;
foreach ( $fielditem->subfields() ) {
# re-encode the subfield only if it isn't already in utf-8.
my ($tag, $value) = @$_;
$tag = Encode::encode('utf-8', $tag) unless utf8::is_utf8($tag);
$value = Encode::encode('utf-8', $value) unless utf8::is_utf8($value);
if ($field) {
$field->add_subfields( Encode::encode( 'utf-8', $_->[0] ) => Encode::encode( 'utf-8', $_->[1] ) );
$field->add_subfields( $tag => $value );
} else {
$field = MARC::Field->new( "$itemtag", '', '', Encode::encode( 'utf-8', $_->[0] ) => Encode::encode( 'utf-8', $_->[1] ) );
$field = MARC::Field->new( "$itemtag", '', '', $tag => $value );
}
}
$record->append_fields($field);

Loading…
Cancel
Save