1
0
Fork 0
mirror of https://github.com/M66B/FairEmail.git synced 2025-01-01 04:35:57 +00:00

Fixed subject header decoding

This commit is contained in:
M66B 2019-05-03 09:29:15 +02:00
parent 7454645ada
commit 9f306c52d5

View file

@ -627,21 +627,31 @@ public class MessageHelper {
subject = MimeUtility.unfold(subject); subject = MimeUtility.unfold(subject);
// Fix UTF-8 if (subject.contains("=?")) {
char[] kars = subject.toCharArray(); // Decode header
byte[] bytes = new byte[kars.length]; try {
for (int i = 0; i < kars.length; i++) subject = MimeUtility.decodeText(subject);
bytes[i] = (byte) kars[i]; } catch (UnsupportedEncodingException ex) {
Log.w(ex);
}
return decodeMime(subject);
} else {
// Fix UTF-8 plain header
char[] kars = subject.toCharArray();
byte[] bytes = new byte[kars.length];
for (int i = 0; i < kars.length; i++)
bytes[i] = (byte) kars[i];
try { try {
CharsetDecoder cs = StandardCharsets.UTF_8.newDecoder(); CharsetDecoder cs = StandardCharsets.UTF_8.newDecoder();
cs.decode(ByteBuffer.wrap(bytes)); cs.decode(ByteBuffer.wrap(bytes));
subject = new String(bytes, StandardCharsets.UTF_8); subject = new String(bytes, StandardCharsets.UTF_8);
} catch (CharacterCodingException ex) { } catch (CharacterCodingException ex) {
Log.w(ex); Log.w(ex);
}
return decodeMime(subject);
} }
return decodeMime(subject);
} }
Long getSize() throws MessagingException { Long getSize() throws MessagingException {