Décodage d'une String en Latin1 - Java - Programmation
Marsh Posté le 24-07-2006 à 11:46:51
Je viens d'essayer un truc du style :
searchBean.getCountry().setName(URLDecoder.decode(searchBean.getCountry().getName(),"ISO-8859-1" ));
searchBean.getCountry().setName(URLDecoder.decode(searchBean.getCountry().getName(),"UTF-8" ));
Mais quedalle, ca change rien, mais String est toujours amochée .
Marsh Posté le 24-07-2006 à 12:01:29
http://localhost:8080/fermette/mod [...] aine&city=
En fait, c'est la String "France Métroplitaine", l'accent a été encodé dans l'url (en UTF-8 je pense). J'ai même essaié un request.setCharacterEncoding("ISO-8859-1" ); mais kedalle, le caractère zarbi est toujours présent .
Marsh Posté le 24-07-2006 à 13:07:04
faudra un jour que vous compreniez que le "caractere zarbi" c'est juste parce que vous imprimez ça dans une console qu'est pas prête pour ça hein. 100 balles qu'avec un debugger tu verras que ton caractere n'est pas "zarbi".
Marsh Posté le 24-07-2006 à 13:46:50
the real moins moins a écrit : faudra un jour que vous compreniez que le "caractere zarbi" c'est juste parce que vous imprimez ça dans une console qu'est pas prête pour ça hein. 100 balles qu'avec un debugger tu verras que ton caractere n'est pas "zarbi". |
Testé ! et il est zarbi !
Marsh Posté le 24-07-2006 à 13:49:36
apres avoir fait ton decoding bidon ptet ?
(edit: et quel débugger? tu t'y es pris comment?)
Marsh Posté le 24-07-2006 à 14:05:32
ben j'utilise eclipse debugger. J'ai toujours ce caractère zarbi. Toi qui a l'air de t'y connaître, t'as une solution peut-être
Marsh Posté le 24-07-2006 à 15:12:51
J'ai essaié d'agir au niveau de Tomcat :
<filter> |
Code :
|
Mais kedalle, je recois toujours le caractère zarbi dans la request.
EDIT : en mettant un point d'arrêt dans une fonction du filtre, le debugger ne s'arrete pas et le system.out.println n'affiche rien ... classe non executée ?
Marsh Posté le 24-07-2006 à 15:18:42
Giz a écrit : J'ai essaié d'agir au niveau de Tomcat : |
c'est pas comme ça que ca se fait :
ca se configure dans le connecteur http (server.xml) : met URIEncoding à UTF-8
http://tomcat.apache.org/tomcat-5. [...] /http.html
Marsh Posté le 24-07-2006 à 15:43:32
Merci Benou, ta solution est certainement plus propre bien que la mienne marchait quand même. En fait, en mettant UTF-8 le 'é' change avec un carré, mais en ISO machin -1 , le é est mal encodé (comme j'ai cité) ... c'est quoi l'encodage à utiliser pour récupérer mon 'é' ?
Sinon je change, je passe par les id de ma table quitte à requêter ma bdd pour recupérer le bon pays. je laisse tomber l'affaire.
Marsh Posté le 24-07-2006 à 16:12:00
le tout c'est de savoir quel encoding est utilisé pour l'url par le browser web. Et ça, c'est à la discrétion du browser : la spec HTTP est floux là dessus, mais "conseille" l'UTF-8 pour une meilleur compatibilité. Je t'avoue que je ne sais pas quels browsers respectent cette préconisation et dans quel cas ...
Mais la meilleur façon de faire est de passer ces données "accentuées" dans des requêtes de type post. Même là c'est pas clairement spécifié la façon dont ça doit marcher, mais on est arrivé à des "règles de facto" qui permettent de s'en sortir.
Pour te faire une bonne idée de ce problème, je conseille la lecture de ce très bon article que je viens de trouver : http://ppewww.ph.gla.ac.uk/~flavel [...] -i18n.html
Marsh Posté le 24-07-2006 à 11:22:13
Dans une url, je récupère une String codée en UTF8 (les 'é' sont tout zarbi). Quand je la réceptionne dans mon objet request, j'aimerais la décoder en ISO-Latin1. Quelles sont les classes Java permettant de faire cela ?