From cd7e714f2cea3fa68c74a8625645a0ee6c10f1b1 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 10 Mar 2020 12:34:06 +0100 Subject: [PATCH] Added charset workarounds --- .../email/UnknownCharsetProvider.java | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/UnknownCharsetProvider.java b/app/src/main/java/eu/faircode/email/UnknownCharsetProvider.java index 98ae9ef0e8..f35b1a3106 100644 --- a/app/src/main/java/eu/faircode/email/UnknownCharsetProvider.java +++ b/app/src/main/java/eu/faircode/email/UnknownCharsetProvider.java @@ -60,25 +60,21 @@ public class UnknownCharsetProvider extends CharsetProvider { if (sp > 0) name = name.substring(0, sp); - name = name.trim(); + name = name.trim().toUpperCase(); - if (TextUtils.isEmpty(name)) - return StandardCharsets.ISO_8859_1; - - if ("x-IA5".equalsIgnoreCase(name)) - return StandardCharsets.ISO_8859_1; - if ("ASCII".equalsIgnoreCase(name)) - return StandardCharsets.ISO_8859_1; - if ("ISO8859-16".equalsIgnoreCase(name)) - return StandardCharsets.ISO_8859_1; - if ("UTF-8//TRANSLIT".equalsIgnoreCase(name)) + if (name.contains("UTF8") || name.contains("UTF-8")) // //TRANSLIT return StandardCharsets.UTF_8; - if ("BASE64".equalsIgnoreCase(name) || + if (TextUtils.isEmpty(name) || + name.contains("ASCII") || + "x-IA5".equalsIgnoreCase(name) || + "ISO8859-16".equalsIgnoreCase(name) || + "BASE64".equalsIgnoreCase(name) || "ISO".equalsIgnoreCase(name) || "latin".equalsIgnoreCase(name) || "windows-1252".equalsIgnoreCase(name) || - "8bit".equals(name)) + "8bit".equals(name) || + "unknown-8bit".equals(name)) return StandardCharsets.ISO_8859_1; // Android will prevent recursion