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:
<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:
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 !