From 16e890e0a160d4144b7bf7690999bc93e214a344 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 19 Nov 2020 08:39:10 +0100 Subject: [PATCH] Auto fix incorrect UTF-16 --- .../java/eu/faircode/email/MessageHelper.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 374ef21eb3..24f45ab046 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -1790,6 +1790,24 @@ public class MessageHelper { result = HtmlHelper.flow(result); result = "
" + HtmlHelper.formatPre(result) + "
"; } else if (h.part.isMimeType("text/html")) { + // Fix incorrect UTF16 + if (charset != null) + try { + Charset c = Charset.forName(charset); + if (CHARSET16.contains(c)) { + Charset detected = CharsetHelper.detect(result); + if (!CHARSET16.contains(detected)) + Log.e(new Throwable("Charset=" + c + " detected=" + detected)); + if (StandardCharsets.US_ASCII.equals(detected) || + StandardCharsets.UTF_8.equals(detected)) { + charset = null; + result = new String(result.getBytes(c), detected); + } + } + } catch (Throwable ex) { + Log.w(ex); + } + if (charset == null) { // //