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 de conversion d'accents (%E9) dans une requête à un servlet (HTTPServletRequest.getParameter())


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Problème de conversion d'accents (%E9) dans une requête à un servlet (HTTPServletRequest.getParameter())
    Bonjour,

    J'ai une gallerie en jsp qui affiche des balises images "img" dont l'attribut "src" fait appel à un servlet qui retourne une image redimensionnée (150x150) de l'image réelle qui se trouve dans une repository sur le serveur (le chemin provient de la BD).

    Le problème, c'est qu'il y a parfois des accents dans le chemin de l'image et que ceux-ci deviennent des "?" une fois la requête rendue au servlet.

    Exemple :
    Le chemin de l'image dans les BD est ceci-ci : "C:\Repository\un bel été.jpg". La source de l'image devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="XXXXXXX/ImageLoadingServlet?width=150&height=150&filename=C:\Repository\un bel été.jpg" alt="" border="1" width="150" height="150">
    Rendu dans le servlet, il y a ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String filename = request.getParameter("filename");
    Filename a maintenant pour valeur : "C:\Repository\un bel ?t?.jpg".
    Évidemment ça dit que ce fichier-là existe pas.

    Quand je fais getQuerystring() sur la request, les accents apparaissent sous la forme normale pour un charactère spécial dans une URL, c'est à dire : %E8, %E9, etc...

    Pourquoi java remplace les caractère spéciaux sous la forme %E9 par "?" et non par "é" ???? J'ai essayé de jouer sur l'encodage de la page (encoding), de la requête (setCharacterEncoding) et des caractères (CharsetDecoder). Rien ne marche jusqu'à présent.

    Merci de m'aidez !

  2. #2
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour

    si j'étais à votre place, je traiterais le problème en amont. C'est à dire que lorsque l'utilisateur uploades son images, vous la renommez en supprimant les accents et les espaces blancs. A moins que ce ne soit important pour votre utilisateur de garder le nom. Dans ce cas là je vous conseille de faire une recherche sur ce forum ou sur google , il y a plein de personne dans votre cas.

    Si vous ne trouvez pas faites-le savoir

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 71
    Points : 38
    Points
    38
    Par défaut
    Bonjour,
    j'ai presque le même soucis et j'ai pas trouvé une solution; moi j'ai une application web (mysql+tomcat+jsp+servlet+struts) et elle fonctionne bien sur windows mais si je la deploie sur un serveur linux le problème des accents apparait et j'ai localisé le problème, avec cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getParameter("variable");
    dans une servlet normal et non pas un action struts,les accents sont perdus et remplacés par é
    j'ai bien vérifié le probleme ne provient pas de la base, comme j'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Connector URIEncoding="UTF-8" useBodyEncodingForURI="true" [...] />
    dans le fichier server.xml de tomcat mais toujours le même soucis.
    je voulais travailler avec l'encodage UTF-8 et non pas iso-8859-1
    Si t'a trouvé la solution merci de m'éclaircir le chemin

Discussions similaires

  1. Problème de comparaison de deux dates dans une requête
    Par amira88 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/12/2010, 09h02
  2. Problème de 0 avec un Count dans une requête
    Par Exentius dans le forum Requêtes
    Réponses: 4
    Dernier message: 08/12/2010, 08h52
  3. Réponses: 10
    Dernier message: 26/03/2008, 15h00
  4. Problème pour trouver les données commune dans une requête
    Par Winterrage dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/02/2008, 10h14
  5. Problème de visibilité de table/colonne dans une requête
    Par MicaelFelix dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/07/2007, 16h41

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