my $marc = shift;
my $marc_flavour = shift;
my $source_encoding = shift;
-
my $marc_record;
my $marc_blob_is_utf8 = 0;
if (ref($marc) eq 'MARC::Record') {
@errors = _marc_iso5426_to_utf8($marc_record, $marc_flavour);
} else {
# assume any other character encoding is for Text::Iconv
- @errors = _marc_to_utf8_via_text_iconv($marc_record, $marc_flavour, 'iso-8859-1');
+ @errors = _marc_to_utf8_via_text_iconv($marc_record, $marc_flavour, $source_encoding);
}
if (@errors) {
$marc_record->leader($leader);
} elsif ($marc_flavour =~/UNIMARC/) {
my $string;
- my ($subflength,$encodingposition)=($marc_flavour=~/AUTH/?(21,8):(36,22));
+ my ($subflength,$encodingposition)=($marc_flavour=~/AUTH/?(21,9):(36,22));
$string=$marc_record->subfield( 100, "a" );
- if (length($string)==$subflength) {
+ if (defined $string && length($string)==$subflength) {
$string = substr $string, 0,$subflength if (length($string)>$subflength);
}
else {