PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → URLEncode n'encode pas tous les caractères spéciaux
URLEncode n'encode pas tous les caractères spéciaux
Iniciado por Cecile D, 25,sep. 2023 14:22 - 6 respuestas
Miembro registrado
5 mensajes
Publicado el 25,septiembre 2023 - 14:22
Bonjour,

J'utilise la fonction URLEncode pour encoder une chaîne. Mais cette fonction n'encode pas tous les caractères spéciaux contenus dans la chaîne, comme le @ et le : notamment, qui devraient être remplacés respectivement pas %40 et %3A.
Pour l'espace en revanche, j'ai bien un %20.

J'ai essayé différents type d'encodage, mais rien n'y fait. Auriez-vous la solution à ce problème ?

Merci d'avance

--
Cecile D.
Miembro registrado
310 mensajes
Publicado el 25,septiembre 2023 - 14:47
Bonjour
Pour un mode stricte, il faut utiliser la fonction avec le paramètre encodeURLParameter

Bon dev !
Miembro registrado
5 mensajes
Publicado el 25,septiembre 2023 - 15:13
Bonjour Samir,

Merci pour cette réponse rapide. Déjà testé avec encodeURLParamètre, mais pour le coup, il est trop strict! L'API de mon client n'en demande pas tant.

Exemple pour une date/heure : 2023-09-25 09:29:35, l'API attend ceci 2023-09-25+09%3A29%3A35
URLEncode("2023-09-25 09:29:35", encodeURLParamètre) retournera 2023%2D09%2D25 09%3A29%3A35

La solution serait donc de remplacer les caractères spéciaux un par un... ?

--
Cecile D.
Publicado el 26,septiembre 2023 - 09:18
bonjour

seule solution : tu t'écris ta propre fonction dans laquelle tu encodes les caractères souhaités.
pas compliquée à écrire.
et totalement à ta main.

éventuellement tu peux rajouter un paramètre de type "pas stricte", "stricte", "très stricte".


cordialement
titou44
Miembro registrado
5 mensajes
Publicado el 03,octubre 2023 - 16:39
Merci titou44, j'ai effectivement encodé les caractères souhaités un à un.

--
Cecile D.
Publicado el 03,octubre 2023 - 21:53
bienvenue parmi ceux/celles qui se font leur propre collection de fonctions 'système' maison.

titou44
Miembro registrado
235 mensajes
Publicado el 06,noviembre 2023 - 17:48
Bonjour à vous

J'ai je pense un problème similaire avec URLEncode(sURL,toutes options comprise)

qui encode certes en UTF8 mais pas le même que Javascript

Pour réglé le problème j'utilise le code suivant:
sURL = ChaîneVersUTF8(sURL)
reqCreationVersion.URL = URLEncode(sURL,encodeURLDepuisUTF8)


Grâce à cela je n'est plus aucun problème avec les accents, les espaces et les caractères suivant : @ { ~ [ ( - | ` _ ç ^ / * - +

Attention & et # sont bien encodé mais réservé dans le traitement du post.

Note : en windev vous pouvez faire l'opération inverse pour retrouver votre chaine
sURL = URLDecode(reqCreationVersion.URL,encodeURLDepuisUTF8)
sURL = UTF8VersChaîne(sURL)


En espérant que cela vous aidera.
Cordialement