-
Encodage url
Hello,
XMLRAD 2005, Delphi, XP
j'ai encore un petit soucis...
Je passe un nom de fichier par requête GET. Tout marche bien, sauf quand ce nom contient des caractères accentués. En fait...un encodage est bien réalisé, mais il semblerait que ce ne soit pas le bon. Lorsqu'il est récupéré dans le context, il est évidemment décodé, mais donne un caractère différent de celui qu'il y avait au départ.
Un exemple pour être plus clair.
Si j'ai un fichier nommé : làj
Quand je regarde à quoi il ressemble lorsqu'il est dans les paramètres du lien (dans la requête GET) , je vois ceci : l%C3%A0j
Donc, à = %C3%A0
Lorsque on clique sur le lien (donc qu'on éxécute la requête GET), la variable est envoyée à un autre xmlgram.
Et là, si j'affiche (via Delphi) le nom du fichier, j'obtiens : lÃj
Donc forcément, je ne retrouve pas le nom de fichier.
En vérifiant avec un convertisseur url encode, je trouve que :
%C3%A0 = Ã
et que
à = %E0
Bref, l'url ne semble pas correctement encodée.
je précise que le paramètre XMLC_encoding est à ISO-8859-15
Une idée...? Jepensais tenter d'encoder mon nom de fichier avant de créer le lien, mais en xsl je n'ai rien trouvé (pas encore cherché en js).
Merci :-)
-
c'est exact il faut l'encoder avant de le mettre en parametre GET.
il faut utiliser du code pour le faire, pas en XSL.
-
Ok, merci :-)
Je suis finalement passer par la méthode post en ajoutant un formulaire et un champ caché, et un submit sur un évènement onclick du lien.
Parce qu'en passant par un encodage javascript avant la requête GET, j'obtenais exactement le même encodage... j'ai donc abandonné cette méthode.
Une idée d'où cela provient, quand même? Js (encodeURI()) et le xsl ont encodé de la même manière. Et cet encodage semble ne pas correspondre à la RFC.