8
votes

Java Mail codant sur des caractères non anglais

Utilisation du code ci-dessous, je peux envoyer un email écrit en anglais et, bien que le sujet apparaisse correctement, le corps apparaisse comme gibberish.
Des idées?
Merci xxx


1 commentaires

Comment avez-vous mis le sujet pour encoder UTF-8 alors?


3 Réponses :


18
votes

Essayez:

msg.setContent(message, "text/plain; charset=UTF-8");


4 commentaires

devrait être "Texte / Plain; Charset = \" utf-8 \ ""


C'est une très bonne supposition et probablement proche de la solution correcte. Nous ne pouvons que deviner quel caractère définissez votre email. Si vous ne le savez pas non plus, vous pouvez peut-être ajouter quelques lignes de vidage hexagonal d'un échantillon à la question.


@WDS: modifié pour dire Texte / Plain . Les citations autour de l'identifiant Charset sont complètement facultatives, donc je n'ai pas changé cela.


J'ai édité ces deux lignes: message.SetSubject (sujet, "utf-8"); message.setContent (corps, "Texte / plaine; Charset = utf-8"); mais ma boîte de réception Gmail a toujours l'air gibberish.



7
votes

au lieu de

Multipart mp = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
mbp.setContent(message, "text/plain; charset=ISO-8859-7");
mp.addBodyPart(mbp);

msg.setContent(mp);


2 commentaires

Pourquoi avez-vous besoin d'un multiart pour envelopper une seule partie du corps? C'est juste idiot.


Peut-être parce que j'ai pris l'extrait d'une application qui envoie également des pièces jointes? .. Je suis un débutant avec Java Mail.



0
votes

Si rien d'autre aide, essayez de changer un codage de vos fichiers source (y compris les fichiers .java) à UTF8. Dans Eclipse, il est fait via Windows -> Préférences -> Général -> Espace de travail: Fichier texte Encodage J'avais CP1252 comme défaut pour mes fichiers texte.

Je reçois mon texte des fichiers .properties. Les changer en UTF8 n'a pas aidé. Ceci est fou, mais changer mes fichiers .java vers UTF8 a résolu mon problème!


0 commentaires