2010-09-17 2 views
1

Je veux envoyer un e-mail avec du contenu arabe par courrier java, mais chaque mot arabe dans le message apparaît comme ????????????? , comment puis-je faire le codage à utf_8 afin de soutenir la langue arabe ??? depuis que j'utilise ce codeenvoyer un e-mail avec du contenu arabe via java i

Message message = new MimeMessage(session); 
    message.setFrom(new InternetAddress(from)); 
    message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false)); 
    message.setSubject(subject_a); 
    message.setText(messageDetails_a); 
    Transport.send(message); 
+2

Quelque chose est tombé sur votre touche '?' –

Répondre

3

juste ajouter quelques-charset informations sur les méthodes. Si le sujet ou le corps du message contient autre chose que des caractères US-ASCII, le jeu de caractères par défaut sera utilisé pour l'encodage. Le paramétrage explicite du jeu de caractères en UTF-8 sera toujours sûr:

String charset="UTF-8"; 
message.setSubject(subject_a,charset); 
message.setText(messageDetails_a,charset); 
3

Vous devez créer un MimeMessage (et le garder comme MimeMessage) et utiliser la méthode setSubject(subject, "UTF-8"); pour le sujet.

setContent(messageContent, "text/html; charset=utf-8"); gère UTF-8 dans le contenu.

Avec texte pur:

setText(messageContent, "UTF-8"); 

Ressources:

+0

Cela va envoyer un e-mail HTML, mais @Alaa veut envoyer un message texte, –

+0

Eh bien, presque la même chose avec 'setText()' –

+0

Cela fonctionne correctement, merci – palAlaa