Bonjour,
je travaille sur des jsp avec un CMS et j'ai un problème concernant l'encodage d'un paramètre.
En effet un site A utilise une url comme iframe par exemple toto.com?mot=r%E8servation
Moi je travaille sur l'url utilisé pour une iframe.
Ceux qui appellent l'url encode le paramètre mot en hexadécimal et je dois l'utiliser pour l'afficher sur la page.
Dans la jsp, j'utilise le code suivant
Le system.out m'affiche r?servation et la classe Hex quand j'utilise decodeHex me provoque une exception de type error odd character.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <c:set var="mot" value="${param.mot}" /> <% String mot = (String)pageContext.getAttribute("mot"); if (mot != null && mot.length() > 0) { System.out.println(mot); pageContext.setAttribute("mot", org.apache.commons.codec.binary.Hex. decodeHex (mot.toCharArray()); } %>
Voici l'erreur exacte :
org.apache.commons.codec.DecoderException: Odd number of characters.
Pour info, je suis en java 1.5 sur du tomcat.
J'aimerais pouvoir afficher réservation pour l'utiliser dans une recherche à une requête où je pourrais l'encoder en utf-8 mais l'encodage en utf-8 n'est pas le problème.
Je suis complétement perdu
Si je comprends bien, r%E8servation a été décodé en r?servation quand j'utilise le request.getParameter
Est-ce qu'il ne faut pas réencoder en utf-8 le contenu du getParameter pour avoir le %E8 et utiliser le decodeHex?
Merci
Partager