Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1216 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  tomcat jsp: comment fonctionne l'encodage URL vers java?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

tomcat jsp: comment fonctionne l'encodage URL vers java?

n°1104001
Pedro-1
Posté le 01-06-2005 à 12:34:00  profilanswer
 

Bonjour,  
 
J'ai une appli Tomcat qui récupère dans une form un  
    caractère "é"
celui-ci est transmis comme %C3%A9 (UTF8 => URL?)
et lorsque je le récupère dans mon programme java (par HttpServletRequest )  
j'obtiens "é"
 
Je n'arrive pas à trouver comment le reconvertir en "é" ???
 
Merci d'avance
 
Pedro

mood
Publicité
Posté le 01-06-2005 à 12:34:00  profilanswer
 

n°1104022
nraynaud
lol
Posté le 01-06-2005 à 12:53:05  profilanswer
 

http://java.sun.com/j2ee/sdk_1.3/t [...] ng.String)
 
mais il fuadrait vérifier que le client n'a pas de pb aussi.


---------------
trainoo.com, c'est fini
n°1104105
Pedro-1
Posté le 01-06-2005 à 14:18:37  profilanswer
 

C'est effectivement ce que j'ai testé:
   String encoding = request.getCharacterEncoding();
   String charset = request.getParameter("charset" );
mais le résultat est : null
donc je cherche à savoir quel est l'encodage qui est fait, et à quel niveau, pour pouvoir décodé avecle bon charset

n°1104114
nraynaud
lol
Posté le 01-06-2005 à 14:22:36  profilanswer
 

le client doit encoder en utf-8 c'est ce qui est recommandé je crois.


---------------
trainoo.com, c'est fini
n°1104127
Pedro-1
Posté le 01-06-2005 à 14:32:32  profilanswer
 

Exact nraynaud, c'est sûrement de l'utf-8 puisque qand je fais la conversion:
 String sr = new String(v.getBytes("UTF-8" ));
j'obtiens la même chose: "é"  
Le problème que je cherche à résoudre est: comment retrouver le "é" d'origine. Et là je ne sais pas.
On passe de "é" à "%C3%A9" (au niveau du navigateur)
puis je pense de "%C3%A9" à X ( au niveau de Tomcat )
et enfin de X à  "é" aussi au niveau de Tomcat.
 
 

n°1104132
nraynaud
lol
Posté le 01-06-2005 à 14:39:54  profilanswer
 

request.setEncoding("UTF-8" );
request.getMachin();
 
?


---------------
trainoo.com, c'est fini
n°1104195
Pedro-1
Posté le 01-06-2005 à 15:12:46  profilanswer
 

J'avais essayé ça aussi, mais sans succès. Je pense que cela vient du fait que je récupère déjà une chaine qui est en UTF-8, elle n'est donc pas modifiée.  
Mais bien que je sache que "é" correspond à "%C3%A9", je ne sais pas comment revenir à cette chaîne. Ce qui me permettrait de revenir à ce "é" initial....

n°1104288
Pedro-1
Posté le 01-06-2005 à 16:14:13  profilanswer
 

Ca

n°1104295
Pedro-1
Posté le 01-06-2005 à 16:17:49  profilanswer
 

Houps, c'est posté plus vite que c'est écrit ;)
Bien je voulais dire que j'ai trouvé comment reproduire le problème:
String url = new String( java.net.URLEncoder.encode("é","UTF-8" ) );
    String urldecode = new String(URLDecoder.decode(url,"ISO-8859-1" ));
System.out.println("############# url = "+url +" urldecod = "+urldecode);
Le résultat donne:
############# url = %C3%A9 urldecod = é
 
C'est donc bien tomcat qui récupère de l'UTF-8 et le décode en ISO-8859-1.  
Je suppose qu'il fait se décodage par défaut, et que quelque part il doit y avoir un paramètre à changer dans un fichier de conf quelconque, mais où???

n°1104394
benou
Posté le 01-06-2005 à 17:00:53  profilanswer
 

http://jakarta.apache.org/tomcat/t [...] /http.html
 
 

Citation :

URIEncoding  
 
This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used.  
 
 
useBodyEncodingForURI  
 
This specifies if the encoding specified in contentType should be used for URI query parameters, instead of using the URIEncoding. This setting is present for compatibility with Tomcat 4.1.x, where the encoding specified in the contentType, or explicitely set using Request.setCharacterEncoding method was also used for the parameters from the URL. The default value is false.  
 


 


Message édité par benou le 01-06-2005 à 17:02:38

---------------
ma vie, mon oeuvre - HomePlayer
mood
Publicité
Posté le 01-06-2005 à 17:00:53  profilanswer
 

n°1104491
Pedro-1
Posté le 01-06-2005 à 17:52:03  profilanswer
 

Voici un extrait de server.xml :
<Connector acceptCount="100" connectionTimeout="20000"
disableUploadTimeout="true" enableLookups="false"
maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150"
minSpareThreads="25" port="8080" redirectPort="8443"  
URIEncoding="UTF-8" useBodyEncodingForURI="true"/>
________
Visiblement cela ne change rien. J'ai pourtant dans mon jsp:
  <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 A croire qu'il y a un bug dans la version de tomcat que j'utilise :)
jakarta-tomcat-5.5.9
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  tomcat jsp: comment fonctionne l'encodage URL vers java?

 

Sujets relatifs
transfert base de données vers PDA et conversion vb en evbAppeller du code java depuis du code natif
Problème avec tomcat 5[Résolu]Url Rewriting
[1.4.2]java.net: test de présence de machine lan[Java]Pb applet-awt
renvoie vers URL[java] ecriture dans un fichier
XQuery Java 
Plus de sujets relatifs à : tomcat jsp: comment fonctionne l'encodage URL vers java?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR