diff options
author | Eric Wong <e@80x24.org> | 2016-08-18 01:10:35 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2016-08-18 01:32:46 +0000 |
commit | 1b28cc7f00a866cb2b60a6569002db1f605019d5 (patch) | |
tree | a38dac8d8ab2c067546a8b33b7d0789f48f2b3cf /lib/PublicInbox/View.pm | |
parent | 98bd8519675595f6697185a9bd5ee06669bd50be (diff) | |
download | public-inbox-1b28cc7f00a866cb2b60a6569002db1f605019d5.tar.gz |
For some reason, Alpine will set X-UNKNOWN for valid UTF-8. Since we favor UTF-8 HTML anyways, try forcing Email::MIME to handle text/plain as UTF-8 which might show up better. At least this change renders <alpine.DEB.2.20.1608131214070.4924@virtualbox> properly by showing "•" (•) instead of "â ¢" (•) Reported-by: Thomas Ferris Nicolaisen <tfnico@gmail.com>
Diffstat (limited to 'lib/PublicInbox/View.pm')
-rw-r--r-- | lib/PublicInbox/View.pm | 8 |
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); } |