tooliv

Encodage URL

Encoder & decoder une URL

Entrée

Résultat

Encodage URL : pourquoi certains caracteres doivent etre transformes

Les URL n'acceptent qu'un jeu limite de caracteres : lettres, chiffres et quelques symboles. Des qu'un espace, un accent ou un caractere special entre en jeu, il doit etre converti au format %XX -- ce qu'on appelle l'encodage en pourcentage. Sans ca, le serveur risque de ne pas comprendre la requete.

Pourquoi l'encodage URL est indispensable

Les URL suivent la norme RFC 3986 et n'acceptent que les caracteres alphanumeriques plus quelques caracteres speciaux (-._~). Un espace, un accent francais ou un ideogramme dans une URL, et le serveur peut echouer a l'interpreter correctement. Les caracteres & et = servent de separateurs dans les parametres de requete : s'ils apparaissent dans les donnees elles-memes, il faut les encoder pour eviter toute ambiguite. L'encodage URL est tout simplement le mecanisme de base qui permet de transmettre des donnees de facon fiable sur le web.

Les caracteres qu'on encode le plus souvent

Les espaces deviennent %20 (ou + dans certains cas), le & se transforme en %26, le = en %3D et le ? en %3F. Les caracteres accentues du francais sont encodes en UTF-8, ce qui genere plusieurs sequences %XX par caractere. La barre oblique (/) sert de separateur de chemin et ne doit etre encodee que lorsqu'elle fait partie d'une valeur de parametre. Connaitre ces regles evite les bugs lies aux URL mal formees.

Bonnes pratiques pour les developpeurs

La regle d'or : n'encodez que les valeurs des parametres de requete, jamais la structure de l'URL elle-meme. En JavaScript, utilisez encodeURIComponent() pour les valeurs et encodeURI() pour les URL completes. En Python, c'est urllib.parse.quote(). Le double encodage -- quand on encode une chaine deja encodee -- est un classique du genre : on se retrouve avec des %2520 au lieu de %20. Pensez toujours a encoder les valeurs de parametres dans vos appels API, car elles peuvent contenir des caracteres speciaux inattendus.

Questions frequemment posees

Pourquoi l'encodage URL est-il necessaire?

Les caracteres speciaux dans les URLs (espaces, &, = etc.) doivent etre encodes pour etre interpretes correctement.

Qu'est-ce que l'encodage pourcent?

Les caracteres sont remplaces par %XX ou XX est la valeur hexadecimale.

Faut-il encoder l'URL entiere?

Non, n'encodez que les valeurs des parametres, pas la structure de l'URL.

Outils associés