Aller au contenu principal

Encoder correctement les paramètres d’une chaîne de requête

L’outil propose deux modes. Composant (encodeURIComponent) s’applique à un nom ou une valeur de paramètre ; URL complète (encodeURI), à une URL entière déjà bien structurée. Les confondre est la cause la plus fréquente de chaînes de requête cassées.

Exemple détaillé

Le mode URL complète garde le & dans la valeur : le serveur lit deux paramètres au lieu d’un.

Entrée
https://example.com/search?q=salt & pepper&page=2
Résultat · encodeURI()
https://example.com/search?q=salt%20&%20pepper&page=2

Paramètres lus par le serveur

  • "q" = "salt "
  • " pepper" = ""
  • "page" = "2"

Encoder d’abord la valeur en mode Composant la conserve comme un seul paramètre.

Entrée
salt & pepper
Résultat · encodeURIComponent()
salt%20%26%20pepper

https://example.com/search?q=salt%20%26%20pepper&page=2

Paramètres lus par le serveur

  • "q" = "salt & pepper"
  • "page" = "2"

Mode Composant ou URL complète, caractère par caractère

CaractèreComposantURL complète
:%3A:
/%2F/
?%3F?
#%23#
&%26&
=%3D=
+%2B+
␠%20%20
é%C3%A9%C3%A9

Ce que fait l’outil

  • Encodez séparément chaque nom et chaque valeur de paramètre en mode Composant, qui échappe & = ? # + et /.
  • Assemblez les paires encodées sous la forme nom=valeur séparées par &, puis ajoutez le tout après le ? de l’URL.
  • N’utilisez le mode URL complète que sur une URL entière : il conserve : / ? # & = + tels quels et ne protège donc pas une valeur qui en contient.

Guides d’encodage d’URL