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 :

problème d'accent AJAX


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 30
    Points : 22
    Points
    22
    Par défaut problème d'accent AJAX
    Bonjour, j'ai une JSP dans mon tomcat 6 pour laquelle les accents ne posent aucun problème.

    J'en ai une seconde avec des entetes semble-t-il similaires utilisée en Ajax.
    Quand je fais mon innertHTML = responseText en javascript, les accents ne passent pas : j'ai des losanges avec un point d'intérrogation au milieu. Ca se produit sur Firefox et chrome (les autres j'ai pas essayé).

    Le plus étrange, c'est quand quand je regarder le log XHR dans firebug, le code retourné par la requete a les accents qui s'affichent bien...

    Avez vous une idée du problème ?

    merci bien.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    La servlet qui génère le contenu précise dans quel charset sont les données ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    Normalement mon Tomcat retourne un UTF8 en standard,
    en entete de la page j'ai essayé sans et avec entete content-type... il n'est jamais identifié par firebug qui gère les accents dans le contenu décrit par le plugin, et qui ne sont pas affichés correctement dans la partie navigateur.

    Ce qui m'étonne c'est que le problème ne se pose nullepart dans le site... du coup, c'est ptet pas le bon forum, mais c'est lié à l'AJAX...

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Il y a des chances que le problème vienne de la servlet... et/ou de la page.
    Voici un exemple ultra simple qui fonctionne si les sources sont en utf-8 (au niveau d'Eclipse -> properties -> Text file encoding = utf-8)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <html>
    <%@page contentType="text/html; charset=utf-8" %>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    
    <head>
    
    <script type="text/javascript">
    function ajaxCall()
    {
        var request = new XMLHttpRequest();
        request.onreadystatechange = function()
        {
            if (request.readyState == 4)
            {
                document.getElementById("content").innerHTML = request.responseText;
            }
        };
        request.open("POST", "/Web1/Servlet2", true);
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        request.send("param=êtes-vous content");
    }
    setTimeout("ajaxCall()", 2000);
    </script>
    </head>
    
    <body>
    Exemple d'appel AJAX
    <div id="content">...</div>
    </body>
    </html>
    et la servlet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    package test;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class Servlet2 extends HttpServlet
    {
        private static final long serialVersionUID = 1;
        
        @Override
        protected void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
        {
            response.setCharacterEncoding("utf-8");
            PrintWriter out = response.getWriter();
            try
            {
                String value = request.getParameter("param");
                out.write("J'ai été content de vous rencontrer\n" + value);
            }
            catch (Exception e)
            {
                System.out.println("Servlet2 Erreur : " + e.getMessage());
            }
            finally
            {
                if (out != null) out.close();
            }
        }
    }
    C'est la ligne rouge de la servlet qui est très importante.

Discussions similaires

  1. [AJAX] Accents avec Guestbook AJAX et XML
    Par torgull dans le forum AJAX
    Réponses: 13
    Dernier message: 17/08/2009, 12h17
  2. [AJAX] Requete Ajax : accents
    Par Romalafrite dans le forum AJAX
    Réponses: 2
    Dernier message: 11/05/2009, 12h35
  3. [AJAX] Accents avec ajax
    Par carnifex dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/07/2008, 12h56
  4. [AJAX] Accents avec AJAX sous IE !
    Par wormseric dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/01/2008, 16h48
  5. [AJAX + ASP] Problème d'accent
    Par BouB dans le forum ASP
    Réponses: 2
    Dernier message: 10/08/2006, 11h53

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