From 4fc515b22905080576c045faf94352f7b84cbab7 Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Thu, 13 Jun 2019 13:54:16 -0400 Subject: [PATCH] (fix) handle more broken mails (fixes #4513) --- UI/MailPartViewers/UIxMailPartHTMLViewer.m | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/UI/MailPartViewers/UIxMailPartHTMLViewer.m b/UI/MailPartViewers/UIxMailPartHTMLViewer.m index abaf5d40e..3405cf8ce 100644 --- a/UI/MailPartViewers/UIxMailPartHTMLViewer.m +++ b/UI/MailPartViewers/UIxMailPartHTMLViewer.m @@ -846,6 +846,13 @@ _xmlCharsetForCharset (NSString *charset) if (enc == XML_CHAR_ENCODING_UTF8) { s = [[NSString alloc] initWithData: preparsedContent encoding: NSUTF8StringEncoding]; + + // Again, In some rare cases (like #4513), we can get utterly broken email messages where + // HTML parts are wrongly encoded. We try to fall back to UTF-8 if that happens and + // if it still happens, we fall back to ISO-Latin-1. + if (!s) + s = [[NSString alloc] initWithData: preparsedContent encoding: NSISOLatin1StringEncoding]; + preparsedContent = [[s safeString] dataUsingEncoding: NSUTF8StringEncoding]; RELEASE(s); }