lib/PublicInbox/View.pm | 8 +++++++- diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 3f0e1226118702f3c62b94fbe06dd04b809dcfdd..6997c1c595c270e0e14c21ccfb29cfdd969c18f2 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -457,8 +457,14 @@ # badly-encoded message? tell the world about it! my $err = $@; if ($err) { if ($ct =~ m!\btext/plain\b!i) { + # Try to assume UTF-8 because Alpine seems to + # do wacky things and set charset=X-UNKNOWN + $part->charset_set('UTF-8'); + $s = eval { $part->body_str }; + + # If forcing charset=UTF-8 failed, # attach_link will warn further down... - $s = $part->body; + $s = $part->body if $@; } else { return attach_link($upfx, $ct, $p, $fn); }