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) {
//
//