Caractères spéciaux et séparateurs

Lorsque vous manipulez des valeurs d'URL pour des requêtes, il est essentiel d'encoder les caractères spéciaux afin qu'ils soient correctement interprétés. Cependant, n'encodez pas les délimiteurs importants utilisés dans l'URL.

Étapes pratiques pour l'encodage

  • Identifiez les caractères spéciaux. Recherchez les espaces, les signes de ponctuation et les caractères non ASCII dans les composants de votre URL.

  • Utilisez des outils d'encodage : Utilisez des outils en ligne ou des fonctions intégrées dans votre langage de programmation pour encoder ces caractères.

Voici un guide simple pour vous aider à comprendre ce qu'il faut encoder et ce qu'il faut laisser tel quel.

Ce qu'il faut encoder

Les caractères spéciaux incluent les espaces, les signes de ponctuation et les caractères non ASCII. Ces caractères peuvent causer des problèmes dans les URL si vous ne les encodez pas correctement.

Caractères spéciaux courants et leurs équivalents encodés :

Nom

Apparence

Valeur encodée

Espace

%20
Point d'exclamation

!

%21
Dièse

#

%23
Signe dollar

$

%24
Esperluette

&

%26
Signe plus

+

%2B
Virgule

,

%2C

Barre oblique

/

%2F

Deux-points

:

%3A

Point-virgule

;

%3B

Signe égal

=

%3D

Point d'interrogation

?

%3F
Arobase

@

%40

Ce qu'il ne faut pas encoder

Les délimiteurs sont des éléments essentiels de la structure de l'URL et vous ne devriez pas les encoder.

Nom

Exemple

Schéma ou protocole

https://

Domaine

api.example

Séparateur de chemin

/

Début de paramètre de requête

?

Séparateur de paramètre de requête

&

Exemples

Un encodage correct garantit que les caractères spéciaux sont correctement représentés sans affecter les délimiteurs.

  • URL d'origine : https://api.example.com/v1/users?name=John Doe&age=30&city=New York

  • URL encodée : https://api.example.com/v1/users?name=John%20Doe&age=30&city=New%20York

Dans cet exemple, les espaces dans John Doe et New York sont encodés en %20. Les délimiteurs (://, /, ?, & et =) demeurent inchangés.

Un encodage incorrect des délimiteurs peut entraîner des erreurs.

URL encodée : https%3A%2F%2Fapi.example.com%2Fv1%2Fusers%3Fname%3Djohn%26age%3D30

Dans cet exemple, l'encodage des caractères : et / du protocole https:// ainsi que des caractères ? et & qui font partie des paramètres de requête rend l'URL invalide.