IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[Encodage] Unicode dans un mail envoyé par servlet


Sujet :

Servlets/JSP Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut [Encodage] Unicode dans un mail envoyé par servlet
    Bonjour à tous...
    J'utilise une servlet qui envoie un mail suite à une demande. Dans ce mail envoyé par la servlet je dois avoir des caractères unicodes. Cependant à l'ouverture de ce mail, tous les caractères unicode apparaissent tels des points d'interrogation.

    Declaration de mon outputstream et formatage en UTF8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    OutputStream out1 = response.getOutputStream();
    		OutputStreamWriter pout = new OutputStreamWriter(out1, "UTF-8");
    Declaration du mail
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sujet = "\u041c\u0435\u043b\u043e\u0434\u0438\u0438";
    content[0] = "\u0412\u0430\u0448 \u0432\u044b\u0431\u043e\u0440 \"" + label + "\".\n";
    Envoi du mail
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    msg.setHostName(localhost);
    msg.setSender("sender@mysender.com");
    msg.setSubject(sujet);
    for (int i = 0; i < content.length; i++) {
    msg.addLine(content[i]);
    			}
    String serveurmail = "serveur d'envoi"; 
    msg.send(serveurmail);
    il est évident que la variable serveurmail n'a pas cette valeur et qu'il s'agit bien du serveur de mail.

    Je reçois bien le mail mais tout en ??? pour les caractère unicodes. Pourtant le message est formatté UTF-8 et mes caractères unicodes sont valides.

    Je demande votre assistance sur ce point, merci à vous tous et bonne journée.

    [ Modéré par Bulbo ]
    Ajout d'un tag dans le titre
    Les Règles du Forum

  2. #2
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut

    dans ce cas je crois que ton code n'est pas affiché correctement car il correspond à un codage des lettres non supportées par ton navigateur (japonais, chinois par exemple).
    sinon je ne vois pas pourquoi t'as des ???

  3. #3
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Citation Envoyé par soulhouf

    dans ce cas je crois que ton code n'est pas affiché correctement car il correspond à un codage des lettres non supportées par ton navigateur (japonais, chinois par exemple).
    sinon je ne vois pas pourquoi t'as des ???
    Ce n'est pas forcément avec un navigateur qu'on lit ces courriels. ;-)

    Pour beber69, indiques-tu que ton messages utilise UTF-8?

    EDIT: par exemple avec un header du genre "Content-Type: text/plain; charset=UTF-8" (c'est exemple). As-tu la possibilité de lire le source du message?

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Merci pour ta réponse, ce sont des caractères cyrilliques en fait.
    J'utilise outlook pour lire ce mail et il semble que dans la trace que je possède du contenu du mail dans la servlet avant l'envoi, il comporte déjà ces ??? à la place des caractères comme Мелодии par exemple...

    OutputStreamWriter pout = new OutputStreamWriter(out1, "UTF-8"); ça ne suffit pas ? sachant que out1 est mon contenu envoyé ?

    Edit : J'ai ajouté ça et rien ne change :

    response.setContentType("text/plain");
    response.setCharacterEncoding("UTF-8");
    r = this.sendMail(request, response);

    J'ai également essayé response.setContentType("text/plain; charset=UTF-8"); sans succès

    Le message est dans la servlet (.java) et écrit à coup de caractères unicode (\u....), lorsque je trace le mail avant envoi, il comporte des ???

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Je reprends en simplifiant les choses...
    J'ai un tableau de String qui comporte des caractère unicodes cyrilliques.
    J'ai tenté de tracer dans le log d'un tomcat la première ligne de ce tableau et dans le catalina.out la ligne référée apparait toute bardée de ???

    je déclare content[0]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    content[0] = "\u0412\u0430\u0448 \u0432\u044b\u0431\u043e\u0440 \"" + label + "\".\n";
    J'écris dans le log
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    log.log(getNameTrace(), Level.DBG, "sendMail " + content[0]);
    Que dois-je faire ?
    Merci pour vos réponses...

  6. #6
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    ATTENTION

    Ton fichier log est-il au format UTF-8. Les deux premiers octets doivent être 0xFF 0xFE.

    Si ton fichier n'est pas dans ce format, tu ne peut pas interpréter correctement le contenu de ton log. L'outil quwe tu utilises pour visualiser le fichier log, est-il capable d'interpéter UTF-8?

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Ce log est généré par log4j, je n'ai pas trouvé le moyen de le formatter en utf-8, et je n'ai pas la possibilité de faire tourner sur un tomcat en local.

    Merci pour cette remarque, et j'espère avoir des suggestions pour mon pépin de log4j ...

  8. #8
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    please advice ...

  9. #9
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    J'ai modifié l'appender du log4j pour avoir un formatage unicode. Mes caractères apparaissent dans ce log formaté en unicode et je souhaiterai formaté un email envoyé par ma servlet en unicode pour que les caractères unicode apparaissent à l'ouverture de ce mail.

    Merci de me conseiller.
    Bonne journée à tous.

  10. #10
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Je peux maintenant choisir le charset du mail texte brut qui est envoyé.
    Le problème est que mon mail contient des caractères du type:
    \u0412\u0430\u0448 \u0432\u044b\u0431\u043e\u0440\
    J'ai formaté le mail en unicode, en KOI8-R comme il s'agit de caractères cyrilliques ainsi qu'en ISO-8859-5.
    Tout ces codages sont infructueux ?

    Quelles suggestions pouvez-vous me faire ?
    Je vous remercie et vous souhaite une bonne soirée.

Discussions similaires

  1. Case à cocher en html dans le texte d'un mail envoyé par macro
    Par francky74 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 01/08/2011, 12h36
  2. Réponses: 2
    Dernier message: 11/02/2011, 14h21
  3. [XI R2] Pas de pièce jointe dans des mails envoyés par BO
    Par rfr14 dans le forum Administration-Migration
    Réponses: 1
    Dernier message: 02/02/2009, 14h58
  4. piece jointe dans un formulaire envoyé par mail
    Par marie2006 dans le forum InfoPath
    Réponses: 1
    Dernier message: 26/11/2008, 16h39
  5. [XHTML] Comment mettre du css dans un mail envoyé par mon site?
    Par starr dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 29/12/2006, 07h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo