last;
}
}
- } elsif ($entity->head->mime_type =~ m{text/}) {
- if ($entity->head->mime_type =~ m{text/html}) {
- $self->add_data ($entity, $html);
- $found = 1;
- } elsif ($entity->head->mime_type =~ m{text/plain}) {
- my $cs = $entity->head->mime_attr("content-type.charset");
+ } elsif ($entity->head->mime_type =~ m{text/}) {
+ if ($entity->head->mime_type =~ m{text/(html|plain)}) {
+ my $type = $1;
+ my $cs = $entity->head->mime_attr("content-type.charset") // 'ascii';
eval {
- my $enc_text = encode($cs, $text, Encode::FB_CROAK);
- $self->add_data($entity, $enc_text);
- };
+ my $encoded = encode($cs, $type eq 'html' ? $html : $text, Encode::FB_CROAK);
+ $self->add_data($entity, $encoded);
+ };
# simply ignore if we can't represent the disclainer
# with that encoding
$found = 1;