Décodage du sujet de l’e-mail UTF-8?

J’ai une chaîne sous cette forme: =?utf-8?B?zr...

Et je veux obtenir le nom du fichier avec le bon encodage UTF-8. Existe-t-il une méthode de bibliothèque quelque part dans maven central qui effectue ce décodage pour moi, ou devrai-je tester le modèle et décoder manuellement le format base64?

Dans la terminologie MIME, ces morceaux codés sont appelés mots codés. Découvrez javax.mail.internet.MimeUtility.decodeText dans JavaMail. La méthode decodeText tous les mots codés d’une chaîne.

Vous pouvez le saisir de maven avec

  javax.mail mail 1.4.4 

MimeUtility.decodeText travaille pour moi,

par exemple,

 MimeUtility.decodeText("=?UTF-8?B?4K6q4K+N4K6q4K+K4K604K6/4K614K+BIQ==?="); 
 javax.mail.internet.MimeUtility.decodeWord() 

D’autre part, si vous utilisez JavaMail pour décoder vos e-mails, vous n’avez pas à vous soucier de l’parsing du sujet ni de l’parsing du corps MIME (pièces jointes).

En outre, il n’est pas nécessaire que ce soit Base64 (commun avec les clients d’Apple), il peut également être Quoted-Printable (commun avec le client MS Outlook).

Thunderbird utilise le format le plus court (Base64 pour le japonais, QP pour la plupart des langues européennes).

Si vous voulez vraiment l’implémenter vous-même, jetez un coup d’œil aux RFC2047 et RFC2184 (vous devez le faire, il existe quelques subtilités telles que le codage fractionné en deux jeux de caractères différents ou la fusion de mots codés adjacents uniquement séparés par des espaces vides)