about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/PublicInbox/View.pm8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index 3f0e1226..6997c1c5 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -457,8 +457,14 @@ sub add_text_body {
         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);
                 }