Improved header encoding fixing

This commit is contained in:
M66B 2021-06-16 16:35:13 +02:00
parent 4d82a6c751
commit b52c3171c4
1 changed files with 11 additions and 7 deletions

View File

@ -1207,13 +1207,17 @@ public class MessageHelper {
if (header.trim().startsWith("=?"))
return header;
if (CharsetHelper.isUTF8(header)) {
Log.i("Converting " + name + " to UTF-8");
return new String(header.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
} else {
Log.i("Converting " + name + " to ISO8859-1");
return new String(header.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.ISO_8859_1);
}
Charset detected = CharsetHelper.detect(header);
if (detected == null && CharsetHelper.isUTF8(header))
detected = StandardCharsets.UTF_8;
if (detected == null ||
CHARSET16.contains(detected) ||
StandardCharsets.US_ASCII.equals(detected) ||
StandardCharsets.ISO_8859_1.equals(detected))
return header;
Log.i("Converting " + name + " to " + detected);
return new String(header.getBytes(StandardCharsets.ISO_8859_1), detected);
}
private Address[] getAddressHeader(String name) throws MessagingException {