URLEncoder et javascript:escape() - Java - Programmation
Marsh Posté le 19-05-2005 à 15:00:27
y a 2 méthodes pour encoder les espaces dans le format des url : soit un '+' soit en utilisant le code du caractère en hexadecimal => esapce = '%20'
bref, les donnes méthodes fonctionne => tu peux utiliser URLEncoder.encode.
Et laisse l'encodage en "UTF-8", ca n'a rien à voir avec ce que tu essayes de faire ...
Marsh Posté le 19-05-2005 à 15:14:10
benou a écrit : y a 2 méthodes pour encoder les espaces dans le format des url : soit un '+' soit en utilisant le code du caractère en hexadecimal => esapce = '%20' |
C'est ce que je croyais aussi, mai ça ne fonctionne pas.
Si je fais un bête replace de ' ' par '%20' pour le fichier "Mon fichier.xls", ça fonctionne.
Si j'appelle "Mon+fichier.xls" il va bien chercher un fichier qui contient un '+' et non me le remplacezr par un ' '.
Je crains devoir me faire un sale tableau et une série de replaceAll() (Berrk).
Marsh Posté le 19-05-2005 à 15:16:50
c'est quoi ton serveur web ? pacrce que même IE remplace les ' ' par des '+' ...
remarque, peut être seulement dans les paramètre, pas dans le passe
plutot qu'un replaceAll, boucle et encode tout ce qui est d'un code > 128 en # + code hexa du char
Marsh Posté le 19-05-2005 à 15:18:40
benou a écrit : c'est quoi ton serveur web ? pacrce que même IE remplace les ' ' par des '+' ... |
LE plus simple serait que mes utilisateurs arrêtent de me pondre des noms à la cons pour leurs fichiers genre moins de 10 char et tout en ascii 7bit
Merci pour le conseil.
Marsh Posté le 19-05-2005 à 15:28:30
Et pour répondre à ta question c'est un Apache httpd 2.
Mais les caractères + et - ne sont pas ré-encoder, comment ferait-il pur les différencier.
Je crois qu'il y a une différence d'encodage entre l'adresse et les données d'un formulaire (que ce soit POST ou GET).
Marsh Posté le 19-05-2005 à 15:36:42
krosso a écrit : Mais les caractères + et - ne sont pas ré-encoder, comment ferait-il pur les différencier. |
le + est réencodé : %2B
peut être qu'il y a une différence ouais ... mais c'est bizarre que j'ai jamais rencontré ce problème si c'est le cas ...
Marsh Posté le 19-05-2005 à 15:44:07
benou a écrit : |
ah ?
la fonction escape() ne le ré-encode pas.
"mon fichier à moi+toi.xls" devient "mon%20fichier%20%E0%20moi+toi.xls"
Marsh Posté le 19-05-2005 à 16:07:31
Reply
Marsh Posté le 19-05-2005 à 14:57:03
la fonction javascript escape() permet d'url encoder une chaine.
Par exemple la chaine "Mon fichier à moi.xls" devient : "Mon%20fichier%20%E0%20moi.xls"
Je voudrais faire la même chsoe en Java.
Sans trop me poser de question je fais appelle à URLEncoder.encode(chaine, "UTF-8" ) en pensant que ça faisait la même chose que le escape sus-cité.
Mais non.
Ca me donne : "Mon+fichier+%C3%A0+moi.xls"
J'ai tenté aussi URLEncoder.encode(chaine, "ISO-8859-1" ) : "Mon+fichier+%E0+moi.xls"
Donc si je veux ouvrir une connexion HTTP et récupérer le document "Mon fichier à moi.xls" comment puis-je faire ???
Merci.