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'encodage JSP


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de dedeloux
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 104
    Par défaut Problème d'encodage JSP
    Bonjour à tous,

    Je sais que l'encodage est un problème récurrent en java mais je n'ai pas trouvé de solution pour résoudre mon problème dans le forum.

    Je bosse avec des pages JSP dans lesquelles j'ai la balise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    Je travaille également avec Spring 2.5, Hibernate 3 et une base Oracle 9i.
    Mon souci est donc que je n'arrive pas à afficher correctement les caractères accentués dans mes pages JSP.

    Quand j'écris un caractère accentué dans ma page et que je l'enregistre dans ma base, j'obtiens un caractère bizarre Par contre, si j'ajoute directement des caractères accentués dans ma base, ils sont correctements écrits. Ce qui me laisserait penser que l'encodage de ma base est correct. Mais si c'est le cas, je ne vois pas ce que je dois rajouter pour que les caractères soient correctement pris en compte en java.

    Est ce que quelqu'un pourrait m'aider à résoudre ce mystère s'il vous plaît ?

    Merci par avance.
    Audrey.

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Jette un oeil à cette discussion.

  3. #3
    Membre confirmé Avatar de dedeloux
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 104
    Par défaut
    Merci de ta réponse c_nvy.

    En fait, j'avais déjà jeté un oeil à la FAQ hier, et j'avais vu cette solution que j'avais testé mais sans succès.

    Pas plus de succès aujourd'hui

    Comment est-ce que je peux savoir dans quel charset est encodée une chaîne de caractères ?

    Sinon, quelqu'un a t-il une autre idée ?

  4. #4
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Tu mets des caractères accentués dans ta jsp, avec un encodage UTF-8. A la sauvegarde, ils doivent être encodés correctement. Sous eclipse, assure-toi que le text file encoding de ton fichier est bien UTF-8 et pas l'encodage par défaut.

    Autre piste, Spring fourni un listener pour l'encodage. A placer dans web.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <filter>
    		<filter-name>Spring Character Encoding Filter</filter-name>
    		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    		<init-param>
    			<param-name>encoding</param-name>
    			<param-value>UTF-8</param-value>
    		</init-param>
    		<init-param>
    			<param-name>forceEncoding</param-name>
    			<param-value>true</param-value>
    		</init-param>
    	</filter>

  5. #5
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Si sa marche toujours pas reste cette solution
    lorsque tu valides ton formulaire et avant l'enregistrement en base.

    lorsque tu recupères les données request.getPameter("");
    et que tu les traites avant insertion en base.

    rajoute toi des petits Sysout voir si tu as deja perdu les caractères et savoir quel encodage leur a été appliqué
    si utf-8 tu auras: è - > \u00e8 , é -> \u00e9

    Et ensuite utilisé URLEncode,URLDecode afin de récupérer les données correcte et de les s'inserrées.

  6. #6
    Membre confirmé Avatar de dedeloux
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 104
    Par défaut
    Bonjour Tommy31, merci pour ta réponse.

    J'ai bien vérifié que l'encodage de mes pages était UTF-8 dans Eclipse. Pas de souci de ce côté là.

    J'ai ajouté le filtre que tu m'a montré dans le web.xml et toujours pas de changements, les accents ne s'affichent pas correctement parce qu'ils ne sont pas enregistré correctement dans ma base de données.

    Est ce qu'il y a d'autre choses que je dois ajouter ?

  7. #7
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Citation Envoyé par dedeloux Voir le message
    Bonjour Tommy31, merci pour ta réponse.

    J'ai bien vérifié que l'encodage de mes pages était UTF-8 dans Eclipse. Pas de souci de ce côté là.

    J'ai ajouté le filtre que tu m'a montré dans le web.xml et toujours pas de changements, les accents ne s'affichent pas correctement parce qu'ils ne sont pas enregistré correctement dans ma base de données.
    Je comprend plus là ^^

    les données qui te pose problème se situe a quel niveau ?

    tu récupère des donnes de ta abse et losque tu les affichés les accents sautent car il ne sont pas présent en base de données.

    Ou se sont des données que tu as saisie dans ta jsp et qu'après validation et traitement du formulaire associé les accents sont réencode et disparaisse à l'enregistrement ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'encodage JSP
    Par tonymx15 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 04/06/2012, 18h47
  2. JSP : Problème d'encodage dans un JSONObject
    Par barok59 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 27/08/2010, 15h00
  3. problème encodage JSP -> serveur :/
    Par -=mateo=- dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 14/01/2010, 14h53
  4. Problème d'encodage JSP/Servlet/MySQL
    Par AlexLEDE dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 28/05/2009, 15h13
  5. Problème d'encodage JBoss/MySQL/Jsp
    Par Beewiz dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 11/06/2007, 14h57

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