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 :

probleme de charset


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut probleme de charset
    bonjour à tous,

    pour commencer voici ma configuration

    **un serveur UNIX sur lequel se trouve:
    solaris 8
    tomcat 5.5.25
    j2sdk 1.4.2_05

    **un client Windows Chinois:
    Internet Explorer

    **un client Windows Americain:
    Internet Explorer

    **un client Windows Francais:
    Internet Explorer


    Sur mon serveur se trouve du code XML ,du JAVA et de la JSP


    Je voudrais avoir la possibilité en fonction du client Chinois, Américain ou Francis mettre un charset différent ISO ou GB.

    Le problème est que ma base de données est en ISO et ne peut être changé.
    donc pour l'UTF8 c'est pas possible (en plus ca empeche une autre application de marcher)

    Donc mes données sont codées en ISO.
    Je voudrais que les français voient les caractères accentués
    Je voudrais que les chinois voient les caractères chinois codés en ISO grâce au charset GB

    Comment cela est-il possible?
    Via Tomcat?
    Via un code dans la JSP?
    Via un code JAVA?

    A L'AIDE!!!!!

  2. #2
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Par défaut
    Bonjour à toi !

    Moi, je dirais que c'est un problème Java. Pourquoi? Et bien parce que tu peux essayer de régler les locales de ton application (charset utilisé) grâce aux fonctions hyper fournies de ce langage (cf Api Java). Peut-être peut-tu essayer de faire des fichiers properties, mais là, je ne m'aventure pas sur ce terrain, je ne les ai pratiquées qu'une fois.

    Sans convictions sur ce que je dis, je m'en remet aux autres

    Bon courage !!

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut
    Je sais que je peux récupérer la langue du client (Americain Chinois ou Francais)
    par contre je ne sais pas comment à partir de cette langue mettre un charset particulier.

    je n'arrive par exemple pas à mettre un code avec un if et 2 charset en fonction de la langue.

    Je me fait envoyer bouler!!!

  4. #4
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Par défaut
    As-tu essayé de changer dynamiquement le charset des tes jsp en fonction justement de la langue du client?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <% if(langue == "Francais"){ %>
    <meta http-equiv="Content-type" content="text/html; charset=/*Charset francais*/" />
    <% } else { %>
    <meta http-equiv="Content-type" content="text/html; charset=/*Charset Chinois*/" />
    <% } %>
    Pas trop sûr que ça fasse ce que tu veux...mais bon petit à petit, on trouvera bien

  5. #5
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut
    Citation Envoyé par Carabi Voir le message
    As-tu essayé de changer dynamiquement le charset des tes jsp en fonction justement de la langue du client?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <% if(langue == "Francais"){ %>
    <meta http-equiv="Content-type" content="text/html; charset=/*Charset francais*/" />
    <% } else { %>
    <meta http-equiv="Content-type" content="text/html; charset=/*Charset Chinois*/" />
    <% } %>
    Pas trop sûr que ça fasse ce que tu veux...mais bon petit à petit, on trouvera bien
    Comment faire pour que mon code javascript qui récupère la langue de l'IE soit utilisable avec le code que tu viens de me donner



    voici mon javascript:

    <script language="JavaScript" >
    var language = (navigator.appName == 'Netscape') ? navigator.language : navigator.browserLanguage;
    </script>

  6. #6
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Par défaut
    Comment faire pour que mon code javascript qui récupère la langue de l'IE soit utilisable avec le code que tu viens de me donner
    Oups, je t'ai donné du code JSP. En javascript, tu change l'attribut de la balise META de manière dynamique et c'est gagné, normalement. Tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("meta").attr("content", "nouvelleValeur");
    dans un if qui teste la langue du navigateur.

  7. #7
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut
    mon code javascript ressemble à ca alors ?
    Je ne comprend pas trop comment fonctionne $("meta").attr("content", "nouvelle valeur");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    <script language="JavaScript" >
    var language =  (navigator.appName == 'Netscape') ? navigator.language :  navigator.browserLanguage;
    var code = language.substring(0,2);
    if(langue == "fr")
    { 
    $("meta").attr("content", "ISO-8859-1");
    }
    else
    {
    $("meta").attr("content", "GB2312");
    }
    </script>

  8. #8
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut
    J'ai l'impression de me mélanger les pinceaux.


    mon code se trouve sur un .jsp

    à l'intérieur j'ai du jsp (normal)
    et j'exécute du javascript pour trouver la langue de connexion


    pour le moment mes charset sont sous la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page contentType="text/html;charset=UTF-8" %>
    c'est possible avec du javascript de changer du code jsp???

  9. #9
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Par défaut
    Le code JSP est exécuté côté serveur pour générer et renvoyer au client du code HTML, modifiable via le JS, donc la réponse est oui. Une fois ta page affichée, il t'est possible de déclarer une fonction du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $(document).ready(function(){
         var language =  (navigator.appName == 'Netscape') ? navigator.language :  navigator.browserLanguage;
         var code = language.substring(0,2);
         if(langue == "fr")
         { 
              document.getElementByTagName("meta").content = "text/html;charset=ISO-8859-1" ; //pas sûr du .content
         }
         else
         {
              document.getElementByTagName("meta").content = "text/html;charset=GB2312" ;
         }
    });

  10. #10
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut
    Citation Envoyé par Carabi Voir le message
    Le code JSP est exécuté côté serveur pour générer et renvoyer au client du code HTML, modifiable via le JS, donc la réponse est oui. Une fois ta page affichée, il t'est possible de déclarer une fonction du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $(document).ready(function(){
         var language =  (navigator.appName == 'Netscape') ? navigator.language :  navigator.browserLanguage;
         var code = language.substring(0,2);
         if(langue == "fr")
         { 
              document.getElementByTagName("meta").content = "text/html;charset=ISO-8859-1" ; //pas sûr du .content
         }
         else
         {
              document.getElementByTagName("meta").content = "text/html;charset=GB2312" ;
         }
    });
    D'accord je comprend mieux.
    Enfin je crois...
    En gros on a notre code HTML qui est généré et grâce au Javascript on va pouvoir le modifier. Et la le principe que tu donnes est de modifier le meta content?

    j'ai essayé mais il ne se passe rien comme si il n'ya avait rien de défini dans meta content. Je regarde la doc sur les content en Javascript mais c'est pas tres clair...

  11. #11
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Par défaut
    Tu as bien compris. Le javascript sert à ajouter du contenu dynamique au HTML. Ainsi, grâce à lui, tu peux modifier les valeurs affichées à tout moment.

    Mon code te proposait donc de modifier dynamiquement la valeur de l'attribut content de la balise meta une fois ta page chargée complètement. Essaye le avec les deux charsets différents, puis affiche le code source de ta page, ainsi, tu pourras voir si cette balise est effectivement modifiée. Aussi, pour vérifier que le compilo passe bien soit dans le "if", soit dans le "else", mets des alert(...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if(langue == "fr")
    { 
    alert("Je passe dans le if");          
    document.getElementByTagName("meta").content = "text/html;charset=ISO-8859-1" ;
    }
    else
    {
    alert("Je passe dans le else");          
    document.getElementByTagName("meta").content = "text/html;charset=GB2312" ;
    }

  12. #12
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut
    j'ai essayé avec les alert et effectivement je passe bien dedans
    par contre je ne vois pas de changement.

  13. #13
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Par défaut
    As-tu affiché le code source de ta page pour voir si le changement de la balise se fait? Sinon, attendre que ta page soit chargée pour changer le charset n'est peut être pas la bonne solution, car ta page est déjà chargée... Peut-être devrait-tu le faire avant, ou faire un reload.
    Si ça ne marche pas, c'est que, comme je l'avais dit en commentaire, je me suis trompé sur le document[...].content. Lis les docs Javascript, tu trouveras très vite ton bonheur.
    Sinon, je te redirigerais vers JQuery, c'est simple, c'est fort, c'est efficace

  14. #14
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut
    Ca y est!!!!!

    Voici le code qui permet de modifier un charset dans une jsp en javascript


    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
     
    <script language="JavaScript" >
    var language =  (navigator.appName == 'Netscape') ? navigator.language :  navigator.browserLanguage;
    var code = language.substring(0,2);
    alert('Code =' + code);
     
    if(code == "fr")
    { 
    alert('on essaye de mettre utf-8');
    document.charset='UTF-8';
    }
    else
    {
    alert('on essaye de mettre gb');
    document.charset='GB2312';
    }
    </script>

  15. #15
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut
    Alors maintenant on vient de franchir une étape importante!!!

    Merci Carabi

    D'après l'un d'entre vous :
    Est il possible d'avoir un code (java ou autre) permettant d'appeler le code que l'on vient de trouver dans n'importe quelle jsp dès qu'elle est appelée?

    Je sais pas si c'est clair (dites le moi?)

  16. #16
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Par défaut
    Niquel !! C'était plus simple que je pensais, un petit .charset et hop

    Content d'avoir pu t'aider et bon courage pour la suite !

  17. #17
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Par défaut
    C'est clair qu'à moitié mais j'ai compris

    C'est très simple : ce code là, met le tout seul dans un fichier à part, par exemple charset.js .

    Ensuite, tu appeleras ce fichier dans les JSP chaque fois que tu en auras besoin
    Copie ça dans tes balises <HEAD> :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="leCheminDuFichier/charset.js"></script>
    Sinon, pour vraiment répondre à ta question, si tu veux vraiment un code JSP (donc JAVA) qui fait ça, alors tu met un code JSP en début de page JSP (toujours dans <HEAD>)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <% if(besoin de changer le charset){ %>
         //Ton code qui marche !!
    <%}%>
    Voilà, si tu as d'autres questions, n'hésites surtout pas

  18. #18
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut
    Bon j'ai trouvé une solution qui permet de contourner mon problème:

    J'ai une jsp qui est très souvent appelé dans mes jsp et j'ai mis mon code dedans et ca marche!!!

  19. #19
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Par défaut
    C'est parfait alors !

    N'oublies pas le tag résolu si ta solution te convient

    Bon courage à toi et bonne continuation

  20. #20
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut
    ca roule merci!!!

Discussions similaires

  1. probleme de charset sur JSP multilangue
    Par pcouas dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 20/11/2008, 22h56
  2. Probleme de charset
    Par tom7777 dans le forum Langage
    Réponses: 7
    Dernier message: 02/09/2008, 04h45
  3. [UTF8] probleme de charset
    Par max44410 dans le forum Langage
    Réponses: 1
    Dernier message: 03/12/2007, 10h13
  4. probleme de charset
    Par loig.noblet dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 08/03/2007, 13h12
  5. [MySQL] Problème de charset avant l'envoi dans la BDD
    Par Death83 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/08/2006, 18h51

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